如何在复选框OnCheckedChanged时从gridview获取复选框值

我想在gridview中检查时更新数据。 在我从复选框获取值之前,我的代码只返回数据库中的数据。 我检查后想要当前值。

代码隐藏: –

protected void chkSelected_CheckedChanged(object sender, EventArgs e) { for (int rowIndex = 0; rowIndex < GridView1.Rows.Count; rowIndex++) { if (Convert.ToString(GridView1.Rows[rowIndex].Cells[4].Text) != "") { Response.Write("true"); } else { Response.Write("fasle"); } } } 

设计代码: –

              <asp:CheckBox ID="chkSelected" runat="server" Checked='' AutoPostBack="true" OnCheckedChanged="chkSelected_CheckedChanged" CssClass="chkBox" />           

使用GridViewRow如下…您可以获取使用NamingContainer属性检查的复选框的当前行,如下所示…

编辑 : – 更改标记并添加Hiddenfield以保持Selected的值,如下所示…

       

然后你可以得到Hiddenfield如下,它的价值也是如此

 protected void chkSelected_CheckedChanged(object sender, EventArgs e) { GridViewRow row = (GridViewRow)(((CheckBox)sender).NamingContainer); HiddenField hdnCheck=(HiddenField)row.Cells[4].FindControl("hiddenField1"); if (Convert.ToString(hdnCheck.Value != "") { Response.Write("true"); } else { Response.Write("fasle"); } Edit:-//You can easily get Checkbox which has been cheked,and do your logic CheckBox chkSelect=(CheckBox)sender; if (chkSelect.Checked) { Response.Write("true"); } else { Response.Write("fasle"); } }