PageDataSource 分页实例 并实现跳转 ViewState 保存pageindex和pagecount public int pageIndex { get { if (ViewState["pageIndex"] == null) { ViewState["pageIndex"] = 0; } return Convert.ToInt32(ViewState["pageIndex"]); } set { ViewState["pageIndex"] = value; } } public int pageCount { get { if (ViewState["pageCount"] == null) { ViewState["pageCount"] = 0; } return Convert.ToInt32(ViewState["pageCount"]); } set { ViewState["pageCount"] = value; } } 绑定方法和跳转功能下的绑定方法 /// <summary> /// 绑定方法 /// </summary> public void Bind() { DataSet ds = pm.selectPoList(); PagedDataSource pds = new PagedDataSource(); pds.DataSource = ds.Tables[0].DefaultView; pds.AllowPaging = true; pds.PageSize = 1; pds.CurrentPageIndex = pageIndex; pageCount = pds.PageCount - 1; this.lblpageTotal.Text = "当前第" + (pageIndex + 1).ToString() + "页/总共" + (pageCount + 1).ToString() + "页"; this.GridView1.DataSource = pds; this.GridView1.DataBind(); } /// <summary> ///跳转 绑定方法 /// </summary> public void Bind1(int index) { DataSet ds = pm.selectPoList(); PagedDataSource pds = new PagedDataSource(); pds.DataSource = ds.Tables[0].DefaultView; pds.AllowPaging = true; pds.PageSize = 1; pds.CurrentPageIndex = index - 1; pageCount = pds.PageCount - 1; this.lblpageTotal.Text = "当前第" + (index).ToString() + "页/总共" + (pageCount + 1).ToString() + "页"; pageIndex = index - 1; this.GridView1.DataSource = pds; this.GridView1.DataBind(); } 上下页及跳转。。。 /// <summary> /// 首页 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnFirst_Click(object sender, EventArgs e) { if (pageIndex != 0) { pageIndex = 0; this.btnFirst.Enabled = false; this.btnUP.Enabled = false; this.btnLast.Enabled = true; this.btnNext.Enabled = true; Bind(); } } /// <summary> /// 上一页 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnUP_Click(object sender, EventArgs e) { if (pageIndex != 0) { pageIndex--; this.btnFirst.Enabled = true; this.btnNext.Enabled = true; this.btnLast.Enabled = true; Bind(); } else { this.btnFirst.Enabled = false; this.btnUP.Enabled = false; this.btnNext.Enabled = true; this.btnLast.Enabled = true; } } /// <summary> /// 下一页 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnNext_Click(object sender, EventArgs e) { if (pageIndex != pageCount) { pageIndex++; this.btnFirst.Enabled = true; this.btnUP.Enabled = true; this.btnLast.Enabled = true; Bind(); } else { this.btnFirst.Enabled = true; this.btnUP.Enabled = true; this.btnLast.Enabled = false; this.btnNext.Enabled = false; } } /// <summary> /// 末页 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnLast_Click(object sender, EventArgs e) { if (pageIndex != pageCount) { pageIndex = pageCount; this.btnNext.Enabled = false; this.btnLast.Enabled = false; this.btnUP.Enabled = true; this.btnFirst.Enabled = true; Bind(); } else { this.btnNext.Enabled = false; this.btnLast.Enabled = false; this.btnUP.Enabled = true; this.btnFirst.Enabled = true; } } /// <summary> /// 跳转 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnGo_Click(object sender, EventArgs e) { int aaa = Convert.ToInt32(this.txtpage.Text.Trim()); if (this.txtpage.Text.Trim().ToString() == "" || System.Text.RegularExpressions.Regex.IsMatch(txtpage.Text, @"^[-]?/d+[.]?/d*$") != true || Convert.ToInt32(this.txtpage.Text.Trim().ToString()) < 0 || Convert.ToInt32(this.txtpage.Text.Trim()) > pageCount + 1 || Convert.ToInt32(this.txtpage.Text.Trim()) == 0) { Response.Write("<mce:script type="text/javascript"><!-- alert('请正确填写跳转页数!'); // --></mce:script>"); this.txtpage.Text = ""; } else { int a = Convert.ToInt32(this.txtpage.Text.Trim()); if (a == 6) { btnFirst.Enabled = true; btnUP.Enabled = true; } else { Bind1(a); this.btnNext.Enabled = true; this.btnLast.Enabled = true; btnFirst.Enabled = true; btnUP.Enabled = true; } } }