CheckBox" Checked" GridView中的值始终为false

时间:2014-12-14 12:18:31

标签: c# asp.net gridview checkbox ispostback

我在checkbox中使用gridview列,该列是从SQL数据库填充的。 gridview下方的按钮应检索已检查checkboxe's的行的数据。当我循环遍历所有行checkboxe's时,即使我在单击按钮之前检查了所有行,checked==true都没有ASP.NET。这是<asp:TemplateField> <ItemTemplate> <asp:CheckBox ID="chkRow" runat="server" /> </ItemTemplate> </asp:TemplateField> 代码:

protected void GetSelectedRecords(object sender, EventArgs e)
{
    foreach (GridViewRow row in GridView1.Rows)
    {
        if (row.RowType == DataControlRowType.DataRow)
        {
            CheckBox chkRow = (row.Cells[0].FindControl("chkRow") as CheckBox);               
            if (chkRow != null && chkRow.Checked) //chkRow.Checked is always "false" 
            {
                string name = row.Cells[2].Text;
            }
        }  
     }              
}

这是按钮的操作循环遍历所有行&#39;复选框:

{{1}}

提前多多感谢。我非常感谢任何帮助。

1 个答案:

答案 0 :(得分:5)

如果要在Page_Load中绑定网格,请确保不在if(!IsPostBack){}之外绑定网格。否则,您将失去每个checkboxe's上的postback,从而失去checkboxe's的状态。

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {
       //Bind Your Grid Here
    }
}