fineui 表格
<f:Grid ID="Grid1" Title="titleName" EnableCollapse="true" PageSize="5" ShowBorder="true" ShowHeader="false" runat="server" >
<Columns>
<f:RowNumberField Width="50px" EnablePagingNumber="true" />
<f:BoundField Width="100px" DataField="ID" DataFormatString="{0}" HeaderText="编号" />
<f:BoundField Width="100px" DataField="name" DataFormatString="{0}" HeaderText="姓名" />
<f:BoundField Width="200px" DataField="remark" DataFormatString="{0}" HeaderText="描述" />
</Columns>
</f:Grid>
这是一个基础的表格信息,3列内容列和1列行号,
其中的字段,意义也很简单.Enablecollapse 允许开合 PageSize 页容量 ShowBorder 显示边框 ShowHeader 显示标头
列选项中 DataField 是和数据源匹配的字段,为对应的数据赋值;HeadText 显示在表格上的列头
生成列表的数据源:
infoGridTable = new DataTable();
DataColumn gColumn0 = new DataColumn("ID", typeof(string));
DataColumn gColumn1 = new DataColumn("name", typeof(string));
DataColumn gColumn2 = new DataColumn("remark", typeof(string));
gridTable.Columns.Add(gColumn0);
gridTable.Columns.Add(gColumn1);
gridTable.Columns.Add(gColumn2);
DataRow row = gridTable.NewRow();
row[0] = "1";
row[1] = "lili";
row[2] = "bad grill";
girdTable.AddRow(row);
Grid1.DataSource = gridTable;
Grid1.DataBind();
获取选中列中的内容
首先要定义Grid表的DataKeyNames,这个过程可以在html里面实现(DataKeyNames="ID,name,remark") 或者是在C#程序里 Grid1.DataKeyNames = new string[] { "ID", "name", "remark" };
绑定好了之后 string Id = Grid1.DataKeys[Grid1.SelectedRowIndex][0].ToString(); 选中的是列表当前的选中列 列里面的第0号位置对应的值
Grid1.SelectedRowIndexArray 是一个可以读写的数组 我们既可以通过它来获取选中行 也可以通过它来设置选中行
获取点击响应
OnRowClick="" //点击某一行是触发 GridRowClickEventArgs
OnRowDoubleClick="" //双击某一行时触发 GridRowClickEventArgs
OnRowSelect='"" //选中某一行时触发 GridRowSelectEventArgs
OnRowDeselect="" //取消选中时触发 GridRowSelectEventArgs
这些方法都需要一个开关类的属性来激活,Enable******* (可以按下space键后输入 Eable查看)
OnPageIndexChange="" //点击分页按钮时触发 GridPageEventArgs
Grid2.PageIndex = e.NewPageIndex; //需要手动修改PageIndex 在线实例,把这给注释了
Grid2.RecordCount = reportGridTable.Rows.Count;// 表格总容量
DataTable table = CommonFunction.GetPageTabel(reportGridTable,Grid2.PageIndex,Grid2.PageSize); //获取分页之后的table
Grid2.DataSource = table;
Grid2.DataBind();
public static DataTable GetPageTabel(DataTable table, int pageIndex, int pageSize)
{
DataTable source = table;
DataTable paged = source.Clone();
int rowbegin = pageIndex * pageSize;
int rowend = (pageIndex + 1) * pageSize;
if (rowend > source.Rows.Count)
{
rowend = source.Rows.Count;
}
for (int i = rowbegin; i < rowend; i++)
{
paged.ImportRow(source.Rows[i]);
}
return paged;
}
如果想手动修改数据源,可以为datatable 添加主键约束(为常见的就是我们表的主键ID),通过现示出来的ID找到数据源对应的DataRow 按照所处index的所以就能够修改了