我有一个网格
<Columns>
<asp:TemplateField HeaderStyle-Width="20px">
<ItemTemplate>
<asp:CheckBox ID="ChkSelect" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Id" Visible="false">
<ItemTemplate>
<asp:Label ID="LbLId" runat="server" Text='<%# Bind("ID") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:Label ID="LblId" runat="server" Text='<%# Bind("ID") %>'></asp:Label>
</EditItemTemplate>
<ItemStyle HorizontalAlign="Center" Width="20%" />
</asp:TemplateField>
我想检索已选中的复选框的ID
。我已尝试实现此代码,如
foreach (GridViewRow row in GvDDlToken.Rows)
{
CheckBox chk = row.Cells[0].Controls[0] as CheckBox;
if (chk != null && chk.Checked)
{
string id = "," + row.Cells[1].Text;
}
}
但是在Checkbox chk
处,该值为null,没有对象引用。我在做什么可能的错误?感谢您的帮助。
答案 0 :(得分:1)
您应该使用FindControl
示例:
foreach (GridViewRow row in GvDDlToken.Rows)
{
if(((CheckBox)row.FindControl("CheckBox1")).Checked == true)
{
//some code
}
}