0
我有一个网格,我想在其中动态绑定网格的标题列。将文本绑定到gridview标头
对于我提出电网为:
<asp:GridView ID="gvSearch" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="chkSubjects1" runat="server" />
</HeaderTemplate>
<HeaderTemplate>
<asp:CheckBox ID="chkSubjects2" runat="server" />
</HeaderTemplate>
<HeaderTemplate>
<asp:CheckBox ID="chkSubjects3" runat="server" />
</HeaderTemplate>
<HeaderTemplate>
<asp:CheckBox ID="chkSubjects4" runat="server" />
</HeaderTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
我想绑定文本这个头复选框。
因此,我的第一个尝试是在RowDataBound
事件上绑定文本。
我做它:
If e.Row.RowType = DataControlRowType.Header Then
For i As Integer = 0 To ds1.Tables(0).Columns.Count - 1
CType(e.Row.FindControl("chkSubjects'" & i + 1 & "'"), CheckBox).Text = DirectCast(ds1.Tables(0).Columns(i), System.Data.DataColumn).ColumnName
e.Row.Cells(i).Text = DirectCast(ds1.Tables(0).Columns(i), System.Data.DataColumn).ColumnName
Next
End If
,但它给我的错误上CType(e.Row.FindControl("chkSubjects'" & i + 1 & "'"), CheckBox).Text
为对象Referace,当我做出快速监视这是给它的值作为Referance object has value of nothing
我写有BindGrd相同的代码函数调用它的onload为:
Private Sub BindGrd()
For i As Integer = 0 To ds1.Tables(0).Columns.Count - 1
CType(gvSearch.HeaderRow.FindControl("chkSubjects'" & i + 1 & "'"), CheckBox).Text = DirectCast(ds1.Tables(0).Columns(i), System.Data.DataColumn).ColumnName
Next
End Sub
在这里,我如上所示加入HeaderRow
,但该代码还给出同样的错误。
请帮帮我。