0

我有一个网格

 <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 时,没有进行对象引用。我在做什么可能的错误?感谢您的任何帮助。

4

1 回答 1

1

你应该使用FindControl

示例:

foreach (GridViewRow row in GvDDlToken.Rows)
{
    if(((CheckBox)row.FindControl("CheckBox1")).Checked == true)
    {
    //some code
    }
}
于 2012-12-29T08:26:39.677 回答