Checked Id不从gridview检索

时间:2012-12-29 08:18:35

标签: c# asp.net c#-4.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,没有对象引用。我在做什么可能的错误?感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您应该使用FindControl

示例:

foreach (GridViewRow row in GvDDlToken.Rows)
{
    if(((CheckBox)row.FindControl("CheckBox1")).Checked == true)
    {
    //some code
    }
}