【发布时间】:2013-01-28 00:35:32
【问题描述】:
我正在使用此函数从网格视图创建数据表。它适用于具有 AutoGenerateColumns = False 的 Gridview 并具有绑定字段或模板文件。但是,如果我将它与 AutoGenerateColumn = True 的 Gridviews 一起使用,我只会得到一个空的 DataTable。似乎 Gridview 视图状态已经丢失或什么的。 Gridview 在 PageLoad 上与 If Not IsPostback 绑定。我想不出其他任何东西可以让它发挥作用。希望可以有人帮帮我。
谢谢,
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,谢谢。它正在使用由 Web 服务返回的对象列表(反序列化 xml 字符串),我认为从其中获取 DataTable 比 Gridview 更难。谢谢。 (加上 Gridvew 可以通过 JQuery 进行排序和更改,因此可以更改数据源。)