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

Dou*_*Ali 4 c# asp.net checkbox gridview ispostback

我正在使用从数据库填充的checkbox列.下面的按钮应该检索已经检查过的行的数据.当我遍历所有行时,即使我在单击按钮之前检查了所有行,它们也都没有.这是代码:gridviewSQLgridviewcheckboxe'scheckboxe'schecked==trueASP.NET

<asp:TemplateField>
        <ItemTemplate>
            <asp:CheckBox ID="chkRow" runat="server" />
        </ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)

这是按钮的动作循环遍历所有行的复选框:

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;
            }
        }  
     }              
}
Run Code Online (Sandbox Code Playgroud)

非常感谢提前.我非常感谢任何帮助.

Rah*_*ate 6

如果要绑定网格Page_Load,请确保不绑定网格if(!IsPostBack){}.否则你将失去checkboxe's每个postback,因此失去了状态checkboxe's.

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