2
我正在使用此函数从gridviews创建数据表。它适用于带有AutoGenerateColumns = False的Gridviews并具有绑定字段或模板文件。但是,如果我将它与GridView一起使用,并且AutoGenerateColumn = True,那么我只能返回一个空的DataTable。好像Gridview的viewstate已经丢失了或者什么的。 Gridview绑定在PageLoad上,如果不是IsPostback。我想不出任何其他的东西来使它工作。希望可以有人帮帮我。将GridView转换为VB.NET中的DataTable
感谢,
Public Shared Function GridviewToDataTable(gv As GridView) As DataTable
Dim dt As New DataTable
For Each col As DataControlField In gv.Columns
dt.Columns.Add(col.HeaderText)
Next
For Each row As GridViewRow In gv.Rows
Dim nrow As DataRow = dt.NewRow
Dim z As Integer = 0
For Each col As DataControlField In gv.Columns
nrow(z) = row.Cells(z).Text.Replace(" ", "")
z += 1
Next
dt.Rows.Add(nrow)
Next
Return dt
End Function
当AutoGenerateColumn = True意味着GridView正在从数据源(最类似于数据表)生成列。为什么不使用它? – AbZy 2013-02-12 16:29:54
嗨AbZy,谢谢。它使用webservice返回的对象列表(反序列化xml字符串),我认为很难从GridView中获取DataTable。谢谢。 (加上Gridvew可以通过JQuery进行排序和修改,因此可以更改数据源。) – lawphotog 2013-02-12 16:40:38