FineUI第十七天---- 表格之扩展列

时间:2023-03-09 08:21:46
FineUI第十七天---- 表格之扩展列

表格之扩展列

1.序号列与复选列:只需要设置表格的EnableRowNumber和EnableCheckBoxSelect属性为true即可!

注意:序号列表示的是当前页的顺序,因此即使表格翻页后依然是从1开始的。

默认是多选模式,方式Control、Shift。 取消多选:EnableMultiSelect属性false即可!

FineUI第十七天---- 表格之扩展列

如果在后台获取选中的行呢?

 int[] selections = Grid1.SelectedRowIndexArray;
         foreach (int rowIndex in selections)
      {
          sb.AppendFormat("行索引:{0} 用户名:{1}<br />", rowIndex, Grid1.DataKeys[rowIndex][]);

1.通过表格的SelectedRowIndexArray获得选中行的索引号列表;

2.通过表格的DataKeys(二维数组)获取本行的数据列表,这就需要事先设置表格的DataKeyNames属性(本例中是"Id,Name")。

 2.行扩展列:

FineUI第十七天---- 表格之扩展列

其实只是设置了 RenderAsRowExpander属性

FineUI第十七天---- 表格之扩展列

然后。扩展列默认是折叠起来的。设置ExpandAllRowExpanders即可全部展开。

3.表格中模拟树(很常用):

1   <x:Grid ID="Grid1" Title="表格" ShowBorder="true" ShowHeader="true"

 2             runat="server" EnableCheckBoxSelect="true" DataKeyNames="Id,Name" Width="800px">
 3             <Columns>
 4                 <x:BoundField DataField="Name" DataSimulateTreeLevelField="TreeLevel" DataFormatString="{0}"
 5                     HeaderText="地区" ExpandUnusedSpace="True" />
 6                 <x:ImageField Width="60px" DataImageUrlField="Group" DataImageUrlFormatString="~/images/16/{0}.png"
 7                     HeaderText="分组">
 8                 </x:ImageField>
 9             </Columns>
         </x:Grid> 
以下是后台代码: 

1 DataTable table = new DataTable();
 2         DataColumn column1 = new DataColumn("Id", typeof(int));
 3         DataColumn column2 = new DataColumn("Name", typeof(String));
 4         DataColumn column3 = new DataColumn("Group", typeof(String));
 5         DataColumn column4 = new DataColumn("TreeLevel", typeof(int));
 6         table.Columns.Add(column1);
 7         table.Columns.Add(column2);
 8         table.Columns.Add(column3);
 9         table.Columns.Add(column4);
      
         DataRow row = table.NewRow();
         row[] = ;
         row[] = "中国";
         row[] = "";
         row[] = ;

16         table.Rows.Add(row);

FineUI第十七天---- 表格之扩展列

 4.弹出窗口:

 <ext:Window ID="Window1" Title="编辑" Popup="false" EnableIFrame="true" runat="server"
    CloseAction="HidePostBack" EnableConfirmOnClose="true" IFrameUrl="about:blank"
       EnableMaximize="true" EnableResize="true" OnClose="Window1_Close" Target="Top"
       IsModal="True" Width="750px" Height="450px">

5   </ext:Window>

这是一个窗口

 1 首先来看下使用模板列的ASPX标签定义:
 3   <ext:TemplateField HeaderText="模板列" Width="60px">
 4       <ItemTemplate>
 5        <a href="javascript:<%# GetEditUrl(Eval("Id"), Eval("Name")) %>">编辑</a>
 6    </ItemTemplate>
 7   </ext:TemplateField>
 8 再来看下GetEditUrl函数的定义:
 9 
  protected string GetEditUrl(object id, object name)
  {
   return Window1.GetShowReference("grid_iframe_window.aspx?id=" + id, "编辑 - " + name);
  }

还有一种简便的方式:

  <ext:WindowField ColumnID="myWindowField" Width="60px" WindowID="Window1" HeaderText="窗口列"
    Icon="Pencil" ToolTip="编辑" DataTextFormatString="{0}" DataIFrameUrlFields="Id"
    DataIFrameUrlFormatString="grid_iframe_window.aspx?id={0}" DataWindowTitleField="Name"  DataWindowTitleFormatString="编辑 - {0}" />

好了。表格的扩展列就介绍到这里为止。