在设置Datagrid的Datasource时,用datatable与Dataset都行,但如果是用datarow对象,该如何设置?
System.Object
System.Web.UI.Control
System.Web.UI.WebControls.WebControl
System.Web.UI.WebControls.BaseDataList
System.Web.UI.WebControls.DataGrid
上述是针对Web的DataGrid控件。
下面是针对Windows的DataGrid控件:
DataGrid 控件的数据源
对于 DataGrid 有效的数据源包括:
DataTable 类
DataView 类
DataSet 类
DataViewManager 类
如果数据源是数据集,则它可能是窗体中的一个对象或者是 XML Web services 传递给窗体的对象。可以绑定到类型化数据集或非类型化数据集。有关将数据集添加到窗体的详细信息,请参见用于创建数据集的 Visual Studio 工具。有关使用 XML Web services 访问数据集的详细信息,请参见分布式应用程序和数据集成介绍。
如果其他结构中的对象公开公共属性,也可以将 DataGrid 控件绑定到这些结构。网格将显示结构中元素的所有公共属性。例如,如果将 DataGrid 控件绑定到一个客户对象数组,则网格将显示这些客户对象的所有公共属性。在某些情况下,这意味着虽然可以绑定到结构,但可能没有实用的应用程序。例如,可以绑定到一个整数数组,但是因为 Integer 数据类型不支持公共属性,所以该网格不能显示任何数据。
如果下列结构的元素公开公共属性,则可以绑定到这些结构:
任何实现 IList 接口的组件。这包括一维数组。
任何实现 IListSource 接口的组件。
任何实现 IBindingList 接口的组件。
有关可能的数据源的详细信息,请参见 Windows 窗体数据的提供程序。
仅给楼主提供这点信息,这些均来自MSDN,楼主也可以自己查,不过我想说的是:我没有灌水之意,请勿见怪!
先定义另一个表,结构跟DataSet.Tables(1)相同
dim newTable as new datatable=DataSet.Tables(1).clone
再循环把行导入
dim i as integer
for i=0 to datarows.count-1
newtable.importrow(datarows(i))
next
dataGrid.datasouce=newtable
同意 dunheng() 所说的.
楼上的几位这样做确实可以绑定
但是这样做后,如:newtable.importrow(datarows(i))是赋值拷贝,在datagrid的所有操作与原datarow没有任何关系,我想这不是楼主要的。
只能通过将DataRow逐行Import到DataTable,通过DataSet和DataTable解决.