我们知道GridView有自带的分页功能,正常情况下只要设置了AllowPaging="True" AllowSorting="True",再在后台编辑以下代码,就可以实现自带的分页效果。
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}
但是,当运行页面,对GridView操作了查询筛选后,首页会显示筛选后的数据,再点下面的分页按钮,会发现又显示了全部的GridView数据,而不是筛选后的下一页,这里主要是因为点击分页按钮会重新触发GridView1_PageIndexChanging事件,使得数据再次全部刷新绑定,对于这个问题,有以下解决方案。
首先在客户端加一个label,并且给他的text设置一个值,为“ALL”,<asp:Label ID="TabSign" runat="server" Visible="false">ALL</asp:Label>。之后在后台绑定全部数据的代码下新增 TabSign.Text = "ALL";在绑定查询数据的代码下新增TabSign.Text = "ZB"。之后在事件中设置如下代码。
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
if (TabSign.Text == "ZB")
{
ZBbind();
}
else
{
bind();
}
}