4

我正在使用从数据库填充的checkbox列。下方的按钮应检索已检查的行的数据。当我遍历所有行时,即使我在单击按钮之前已经检查了所有行,它们也没有。这是代码:gridviewSQLgridviewcheckboxe'scheckboxe'schecked==trueASP.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;
            }
        }  
     }              
}

提前非常感谢。我将不胜感激任何帮助。

4

1 回答 1

6

如果您将网格绑定到Page_Load,请确保您没有将网格绑定到if(!IsPostBack){}. 否则,您将失去checkboxe's每个postback,从而失去 的状态checkboxe's

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {
       //Bind Your Grid Here
    }
}
于 2014-12-14T18:04:50.583 回答