.NET DataGrid 控件有一个 AutoGeneratingColumn 事件,该事件会在数据源更改后立即为每个绑定的数据项触发一次。这很有用,因为您可以在模板中定义某些列,如下所示:
<Columns>
<asp:HyperLinkField DataNavigateUrlFields="ID" DataNavigateUrlFormatString="ww{0}" DataTextField="ID" DataTextFormatString="{0}" HeaderText="ID" />
</Columns>
然后防止在从数据源自动生成列时复制同一列。在此示例中,您可以阻止 ID 列自动生成,如下所示:
Private Sub DG_AutoGeneratingColumn(ByVal sender As Object, ByVal e As DataGridAutoGeneratingColumnEventArgs)
Dim headername As String = e.Column.Header.ToString()
If headername = "ID" Then
e.Cancel = True
End If
End Sub
我的问题是是否可以使用 GridView 控件实现类似的功能。
细节
gridview 的数据源是一个 DataTable 对象,我将其绑定如下:
GridView1.DataSource = results.Tables("Vitals")
GridView1.DataBind()
我的 DataTable 中的列数会有所不同,这就是我使用 AutoGenerateColumns 非常方便的原因。