dt.Columns.Add("id", Type.GetType("System.Int32"));
dt.Columns.Add("name", Type.GetType("System.String"));
dt.Columns.Add("sex", Type.GetType("System.String"));
// 写数据
// 方法同你如何读取的二维数据
dt.Rows.Add(1, "王小二", "男");
dt.Rows.Add(2, "张小三", "男");
// ...
// ...
return dt;
所有复杂的列表控件 GridView/DataList/DataGrid/Repeater 均无法直接绑定多位数组,只能绑定一维数组,多维数组会带歧义性解决方案是,先读取数据到 DataTable, DataTable 不正是一个二维表吗?DataGrid1.DataSource = CreateTable();DataGrid1.DataBind();public s
simpleHtml
DataGrid
与目前市场中的
datagrid
控件不同,它更加像一个插槽,开发者需要按照具体所需进行扩展。
参考目录中的例子及api,实例可查看源代码
与同类软件的不同
数据与格式的分离,使得
datagrid
的每一行未必都是统一的格式
说明:控件并没有定义列的格式,如radio列、checkbox列等等,你可以把自定义函数作为参数传入后,就可产生任意形式的列,很类似dwr的实现
排序是以
二维数组
进行的,因此,如果修改了单元格的内容,需要修改数组中相应的
值
最近有一个需求,需要根据用户数据动态生成二维数据表,绑定到表格后,用户再次编辑数据,最后再将编辑过的数据,生成类型数据,存入
数据库
。
仔细分析过后,觉得最适合的方式,莫过于给
DataGrid
绑定DynamicObj
以下是项目效果
二维表格第一行和第一列第二列均于用户以excel的方式传入
然后再进行编辑和选择。然后再将每行数据转为
数据库
格式。例如某一行数据如下:
using System.Data;
//using System.Runtime.Serialization.Formatters.Binary;
namespace GeoLib
/// 主要通过
DataGrid
View表格来绑定自动输入自定义类的
二维数组
数据
/// 数组输入时 表格数据
int[,] TABLE = new int[,] { { 1, 2, 3 }, { 4, 5, 6 } };
DataTable dt = new DataTable();
for (int i = 0; i < TABLE.GetLength(1); i++)
dt.Columns.Add(...