我有一个简单的gridview
<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)
即使我检查了chekBoxes,也没有检查它们的状态。
为什么会发生这种情况?
答案 0 :(得分:3)
试试这个:
检查是否已将用于绑定数据的代码放入到
的GridView中If (!IsPostBack)
{
//Code for Binding Data to GridView
}
答案 1 :(得分:1)
我的错。我没有做到以下
if (!Page.IsPostBack)
{
Binddata();//Bind data to gridview
}
以前的Binddata()方法不在
之内if(!Page.IsPostBack)
导致问题