我正在从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;
            }
        }
     }
}


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

最佳答案

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

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

10-07 16:57