Asp.net 在gridview中获取asp:复选框状态

Asp.net 在gridview中获取asp:复选框状态,asp.net,vb.net,Asp.net,Vb.net,我设置了一个gridview,其中包含一列复选框,如下所示: <asp:TemplateField HeaderText = "Editor"> <ItemTemplate> <asp:CheckBox ID="chkRemove" runat="server" AutoPostBack="false" Checked='

我设置了一个gridview,其中包含一列复选框,如下所示:

                    <asp:TemplateField HeaderText = "Editor">
                        <ItemTemplate>
                             <asp:CheckBox ID="chkRemove" runat="server" AutoPostBack="false" Checked='<%#currentMember(Eval("GroupID")) %>' />
                        </ItemTemplate>
                    </asp:TemplateField>

函数currentMember返回true或false

用户将能够取消选中行以删除成员状态


现在,一旦用户点击submit,如何确定用户取消选中了哪些行,以便更新数据库?

在事件处理程序代码中,执行以下步骤

获取行:

GridViewRow row = GridView1.Rows
然后,对于每一行,找到复选框控件:

CheckBox checkBox = row.FindControl("chkRemove")
查看控件是否未选中:

checkBox.Checked == false
最后,收集已绑定为GridView数据键的记录ID:

int id = (int)GridView1.DataKeys[row.RowIndex].Value;

现在,在事件处理程序代码中应该有更新数据库所需的信息,请执行以下步骤

获取行:

GridViewRow row = GridView1.Rows
然后,对于每一行,找到复选框控件:

CheckBox checkBox = row.FindControl("chkRemove")
查看控件是否未选中:

checkBox.Checked == false
最后,收集已绑定为GridView数据键的记录ID:

int id = (int)GridView1.DataKeys[row.RowIndex].Value;

现在,您应该拥有更新数据库所需的信息了

将以下代码放入提交按钮单击处理程序中

for (int i = 0; i < gridView.Rows.Count; i++)
{
    CheckBox cbox = (CheckBox)gridView.Rows[i].FindControl("chkRemove");
    if(cbox.Checked){
        //DO DATABASE STUFF
    }
}   
for(int i=0;i
将以下代码放入“提交”按钮单击处理程序中

for (int i = 0; i < gridView.Rows.Count; i++)
{
    CheckBox cbox = (CheckBox)gridView.Rows[i].FindControl("chkRemove");
    if(cbox.Checked){
        //DO DATABASE STUFF
    }
}   
for(int i=0;i
这与公认的答案相同,但使用C#编程约定。接受的答案使用Java中也使用的C/C++约定。这没有错,但人们不赞成

 protected void Button1_Click(object sender, EventArgs e)
        {
            GridViewRowCollection rows = ItemsGridView.Rows;

            foreach (GridViewRow gvr in rows){
                CheckBox chk = (CheckBox)gvr.FindControl("chkremove");
                if (chk.Checked)
                {
                    //Do stuff here
                }
            }
        }

这与公认的答案相同,但使用C#编程约定。接受的答案使用Java中也使用的C/C++约定。这没有错,但人们不赞成

 protected void Button1_Click(object sender, EventArgs e)
        {
            GridViewRowCollection rows = ItemsGridView.Rows;

            foreach (GridViewRow gvr in rows){
                CheckBox chk = (CheckBox)gvr.FindControl("chkremove");
                if (chk.Checked)
                {
                    //Do stuff here
                }
            }
        }