复选框网格视图中的选中状态



我有一个简单的网格视图

            <asp:GridView ID="GridView1" runat="server" DataKeyNames="OriginatorID" AutoGenerateColumns="False"
            AllowPaging="True" OnPageIndexChanging="GridView1_PageIndexChanging" PageSize="5"
            OnPreRender="GridView1_PreRender">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:CheckBox ID="CheckBox1" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="Originator" HeaderText="Originator" />
            </Columns>
        </asp:GridView>

我在GridView1_PageIndexChanging事件中调用以下代码

        foreach (GridViewRow item in GridView1.Rows)
        {
            try
            {
                if (item.RowType == DataControlRowType.DataRow)
                {
                    CheckBox chk = (CheckBox)(item.Cells[0].FindControl("CheckBox1"));
                    // chk.checked will access the checkbox state on button click event
                    if (chk.Checked)
                    {
                        //code if checked
                    }
                    else
                    {
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

问题是,如果我选中一个复选框并在gridview上选择下一页,它就永远不会执行内的代码

 if (chk.Checked)

即使我已经检查了复选框,它也没有检查它们的状态。

为什么会发生这种情况?

试试这个:

检查您将数据绑定到
中GridView的代码放在哪里

If (!IsPostBack)
{
     //Code for Binding Data to GridView 
} 

我的错。我没有完成以下

  if (!Page.IsPostBack)
            {
                Binddata();//Bind data to gridview
            }

以前的Binddata()方法不在内

if(!Page.IsPostBack)

导致问题

最新更新