c# Gridview 自动分页功能 解决后面页面不显示问题
操作步骤:
操作如下:
1、更改GrdView控件的AllowPaging属性为
true
。
2、更改GrdView控件的PageSize属性为 任意数值(默认为10)
3、更改GrdView控件的PageSetting->Mode为Numeric等(默认为Numeric)该属性为分页样式。
GridView属性设置好了,从页面上也能看到分页样式。
现在开始实现分页的功能:
1、在<<asp:GridView ID=......>后添加,OnPageIndexChanging=
"GridView1_PageIndexChanging"
2、在对应的aspx.cs中添加:
protected
void
GridView1_PageIndexChanging(
object
sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
InitPage();
//重新绑定GridView数据的函数
}
******** 需要注意的是 bind() 方法在写入page_Load 时 要放在 If(!ispostback)中 {第一次加载时执行} 否则 后面的页面不会显示出来
前台代码:
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> </head> <body> <form id="form1" runat="server"> <div> </div> <asp:GridView ID="GridView1" runat="server" AllowPaging="true" PageSize="20" OnPageIndexChanging="GridView1_PageIndexChanging"> </asp:GridView> </form> </body> </html>
//后台代码:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; namespace test.Mypage { public partial class gridviewfenye : System.Web.UI.Page { int i = 100; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { bind(); // 注意这里 要第一次加载的时候才绑定数据 否则 后面的页面是空白 不限是数据 } } public void bind() // 向Gridview中绑定数据 { DataTable dt = new DataTable(); dt.Columns.Add("ID"); dt.Columns.Add("Name"); dt.Columns.Add("Sex"); dt.Columns.Add("Age"); object[] dr = new object[4]; dr[1] = "张三"; dr[2] = "男"; dr[3] = "21"; for (; i < 10005; i++) { dr[0] = i.ToString(); dt.Rows.Add(dr); } GridView1.DataSource = dt; GridView1.DataBind(); } protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; //添加分页功能 bind(); //重新绑定GridView数据的函数 } } }