一个功能齐全的DataGrid分页例子

C#版本 例子

 

 1  <% @ Page language = " c# "  EnableViewState  =   " true "  Codebehind = " DataGridPaging.aspx.cs "
 2   AutoEventWireup = " false "  Inherits = " eMeng.Exam.DataGridPaging.DataGridPaging "   %>
 3  <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 4  < HTML >
 5  < HEAD >
 6  < meta  content ="Visual Basic 7.0"  name ="CODE_LANGUAGE" >
 7  < meta  content ="JavaScript"  name ="vs_defaultClientScript" >
 8  < meta  content ="http://schemas.microsoft.com/intellisense/ie5"  name ="vs_targetSchema" >
 9  </ HEAD >
10  < body  MS_POSITIONING ="GridLayout" >
11  < form  id ="Form1"  runat ="server" >
12  < asp:datagrid  id ="MyDataGrid"  runat ="server"  AutoGenerateColumns ="False"
13      HorizontalAlign ="Center"  AlternatingItemStyle-BackColor ="#eeeeee"
14      HeaderStyle-BackColor ="#aaaadd"  Font-Size ="8pt"  Font-Name ="Verdana"
15      CellSpacing ="0"  CellPadding ="3"  GridLines ="Both"  BorderWidth ="1"
16      BorderColor ="black"  OnPageIndexChanged ="MyDataGrid_Page"  PagerStyle-HorizontalAlign ="Right"
17      PagerStyle-Mode ="NumericPages"  PageSize ="5"  AllowPaging ="True" >
18    < AlternatingItemStyle  BackColor ="#EEEEEE" ></ AlternatingItemStyle >
19    < HeaderStyle  BackColor ="#AAAADD"  Font-Bold ="True"  HorizontalAlign ="Center" ></ HeaderStyle >
20    < PagerStyle  HorizontalAlign ="Right"  Mode ="NumericPages" ></ PagerStyle >
21    < Columns >
22    < asp:BoundColumn  HeaderText ="标题"  DataField ="Title"  HeaderStyle-Width ="480px" >
23    </ asp:BoundColumn >
24    < asp:BoundColumn  HeaderText ="发表日期"  DataField ="CreateDate"  DataFormatString ="{0:yyyy-MM-dd hh:mm:ss}" >
25    </ asp:BoundColumn >
26    </ Columns >
27  </ asp:datagrid >
28  < style ="FONT-SIZE:9pt"  align ="center" >
29    < asp:label  id ="lblPageCount"  runat ="server" ></ asp:label > &nbsp;
30    < asp:label  id ="lblCurrentIndex"  runat ="server" ></ asp:label >
31    < asp:linkbutton  id ="btnFirst"  onclick ="PagerButtonClick"  runat ="server"  Font-Name ="verdana"
32        Font-size ="8pt"  ForeColor ="navy"  CommandArgument ="0" ></ asp:linkbutton > &nbsp;
33    < asp:linkbutton  id ="btnPrev"  onclick ="PagerButtonClick"  runat ="server"  Font-Name ="verdana"
34        Font-size ="8pt"  ForeColor ="navy"  CommandArgument ="prev" ></ asp:linkbutton > &nbsp;
35    < asp:linkbutton  id ="btnNext"  onclick ="PagerButtonClick"  runat ="server"  Font-Name ="verdana"
36        Font-size ="8pt"  ForeColor ="navy"  CommandArgument ="next" ></ asp:linkbutton > &nbsp;
37    < asp:linkbutton  id ="btnLast"  onclick ="PagerButtonClick"  runat ="server"  Font-Name ="verdana"
38        Font-size ="8pt"  ForeColor ="navy"  CommandArgument ="last" ></ asp:linkbutton >
39  </ p >
40  </ form >
41  </ body >
42  </ HTML >

 

DataGridPaging.aspx.cs

 

  1  using System;
  2  using System.Collections;
  3  using System.ComponentModel;
  4  using System.Data;
  5  using System.Data.OleDb;
  6  using System.Drawing;
  7  using System.Web;
  8  using System.Web.SessionState;
  9  using System.Web.UI;
 10  using System.Web.UI.WebControls;
 11  using System.Web.UI.HtmlControls;
 12 
 13  namespace eMeng.Exam.DataGridPaging
 14 {
 15  ///   <summary>
 16  ///  DataGridPaging 的摘要说明。
 17  ///   </summary>
 18  public  class DataGridPaging : System.Web.UI.Page
 19 {
 20   protected System.Web.UI.WebControls.DataGrid MyDataGrid;
 21   protected System.Web.UI.WebControls.Label lblPageCount;
 22   protected System.Web.UI.WebControls.Label lblCurrentIndex;
 23   protected System.Web.UI.WebControls.LinkButton btnFirst;
 24   protected System.Web.UI.WebControls.LinkButton btnPrev;
 25   protected System.Web.UI.WebControls.LinkButton btnNext;
 26   protected System.Web.UI.WebControls.LinkButton btnLast;
 27   private OleDbConnection cn =  new OleDbConnection();
 28 
 29  private  void Page_Load( object sender, System.EventArgs e)
 30 {
 31    //  在此处放置用户代码以初始化页面
 32    btnFirst.Text =  " 最首页 ";
 33   btnPrev.Text =  " 前一页 ";
 34   btnNext.Text =  " 下一页 ";
 35   btnLast.Text =  " 最后页 ";
 36   OpenDatabase();
 37   BindGrid();
 38 }
 39  private  void OpenDatabase()
 40 {
 41  cn.ConnectionString =  " Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + Server.MapPath( " xxxx.mdb ");
 42  cn.Open();
 43 }
 44  private  void ShowStats()
 45 {
 46  lblCurrentIndex.Text =  " 第  " + (MyDataGrid.CurrentPageIndex +  1).ToString() +  "  页 ";
 47  lblPageCount.Text =  " 总共  " + MyDataGrid.PageCount.ToString() +  "  页 ";
 48 }
 49 
 50  public  void PagerButtonClick( object sender, EventArgs e)
 51 {
 52   string arg = ((LinkButton)sender).CommandArgument.ToString();
 53   switch(arg)
 54  {
 55    case  " next ":
 56     if (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount -  1))
 57    {
 58     MyDataGrid.CurrentPageIndex +=  1;
 59    }
 60     break;
 61    case  " prev ":
 62     if (MyDataGrid.CurrentPageIndex >  0)
 63    {
 64     MyDataGrid.CurrentPageIndex -=  1;
 65    }
 66     break;
 67    case  " last ":
 68    MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount -  1);
 69     break;
 70    default:
 71    MyDataGrid.CurrentPageIndex = System.Convert.ToInt32(arg);
 72     break;
 73  }
 74  BindGrid();
 75  ShowStats();
 76 }
 77  public  void BindGrid()
 78 {
 79  OleDbConnection myConnection = cn;
 80  DataSet ds  =  new DataSet();
 81  OleDbDataAdapter adapter  =  new OleDbDataAdapter( " Select Title,CreateDate from Document ", myConnection);
 82  adapter.Fill(ds,  " Document ");
 83  MyDataGrid.DataSource = ds.Tables[ " Document "].DefaultView;
 84  MyDataGrid.DataBind();
 85  ShowStats();
 86 }
 87  public  void MyDataGrid_Page( object sender, DataGridPageChangedEventArgs e)
 88 {
 89   int startIndex ;
 90  startIndex = MyDataGrid.CurrentPageIndex * MyDataGrid.PageSize;
 91  MyDataGrid.CurrentPageIndex = e.NewPageIndex;
 92  BindGrid();
 93  ShowStats();
 94 }
 95 
 96  #region Web Form Designer generated code
 97  override  protected  void OnInit(EventArgs e)
 98 {
 99  //
100  //  CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
101  //
102  InitializeComponent();
103  base.OnInit(e);
104 }
105 
106  ///   <summary>
107  ///  设计器支持所需的方法 - 不要使用代码编辑器修改
108  ///  此方法的内容。
109  ///   </summary>
110  private  void InitializeComponent()
111 {
112  this.Load +=  new System.EventHandler( this.Page_Load);
113 
114 }
115  #endregion
116 }
117 }

 

方法2:完全后代码写法:例子

DataGridPaging2.aspx

 

 1  <% @ Page language = " c# "  EnableViewState  =   " true "   Codebehind = " DataGridPaging2.aspx.cs "  AutoEventWireup = " false "
 2   Inherits = " eMeng.Exam.DataGridPaging2.DataGridPaging2 "   %>
 3  <! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 4  < HTML >
 5  < HEAD >
 6    < TITLE >功能齐全的分页的例子【2】 </ TITLE >
 7    < meta  content ="Visual Basic 7.0"  name ="CODE_LANGUAGE" >
 8    < meta  content ="JavaScript"  name ="vs_defaultClientScript" >
 9    < meta  content ="http://schemas.microsoft.com/intellisense/ie5"  name ="vs_targetSchema" >
10  </ HEAD >
11  < body  MS_POSITIONING ="GridLayout" >
12    < form  id ="Form1"  runat ="server" >
13      < asp:datagrid  id ="MyDataGrid"  runat ="server"  AutoGenerateColumns ="False"  HorizontalAlign ="Center"
14       AlternatingItemStyle-BackColor ="#eeeeee"  HeaderStyle-BackColor ="#aaaadd"  Font-Size ="8pt"
15        Font-Name ="Verdana"  CellSpacing ="0"  CellPadding ="3"  GridLines ="Both"  BorderWidth ="1"
16         BorderColor ="black"  PagerStyle-HorizontalAlign ="Right"  PagerStyle-Mode ="NumericPages"
17          PageSize ="5"  AllowPaging ="True" >
18        < AlternatingItemStyle  BackColor ="#EEEEEE" ></ AlternatingItemStyle >
19        < HeaderStyle  BackColor ="#AAAADD"  Font-Bold ="True"  HorizontalAlign ="Center" ></ HeaderStyle >
20        < PagerStyle  HorizontalAlign ="Right"  Mode ="NumericPages" ></ PagerStyle >
21        < Columns >
22          < asp:BoundColumn  HeaderText ="标题"  DataField ="Title"  HeaderStyle-Width ="480px" ></ asp:BoundColumn >
23          < asp:BoundColumn  HeaderText ="发表日期"  DataField ="CreateDate"  
24              DataFormatString ="{0:yyyy-MM-dd hh:mm:ss}" ></ asp:BoundColumn >
25        </ Columns >
26      </ asp:datagrid >
27      < align ="center" >
28        < asp:label  id ="lblPageCount"  runat ="server"  Font-Size ="9pt"  Font-Bold ="True" ></ asp:label > &nbsp;
29        < asp:label  id ="lblCurrentIndex"  runat ="server"  Font-Size ="9pt"  Font-Bold ="True" ></ asp:label >
30        < asp:linkbutton  id ="btnFirst"  runat ="server"  Font-size ="9pt"  ForeColor ="navy"  CommandArgument ="0" /> &nbsp;
31        < asp:linkbutton  id ="btnPrev"  runat ="server"  Font-size ="9pt"  ForeColor ="navy"  CommandArgument ="prev" /> &nbsp;
32        < asp:linkbutton  id ="btnNext"  runat ="server"  Font-size ="9pt"  ForeColor ="navy"  CommandArgument ="next" /> &nbsp;
33        < asp:linkbutton  id ="btnLast"  runat ="server"  Font-size ="9pt"  ForeColor ="navy"  CommandArgument ="last" />
34      </ p >
35    </ form >
36  </ body >
37  </ HTML >

 

DataGridPaging2.aspx.cs

 

  1  using System;
  2  using System.Collections;
  3  using System.ComponentModel;
  4  using System.Data;
  5  using System.Data.OleDb;
  6  using System.Drawing;
  7  using System.Web;
  8  using System.Web.SessionState;
  9  using System.Web.UI;
 10  using System.Web.UI.WebControls;
 11  using System.Web.UI.HtmlControls;
 12 
 13  namespace eMeng.Exam.DataGridPaging2
 14 {
 15  ///   <summary>
 16  ///  DataGridPaging 的摘要说明。
 17  ///   </summary>
 18  public  class DataGridPaging2 : System.Web.UI.Page
 19 {
 20   protected System.Web.UI.WebControls.DataGrid MyDataGrid;
 21   protected System.Web.UI.WebControls.Label lblPageCount;
 22   protected System.Web.UI.WebControls.Label lblCurrentIndex;
 23   protected System.Web.UI.WebControls.LinkButton btnFirst;
 24   protected System.Web.UI.WebControls.LinkButton btnPrev;
 25   protected System.Web.UI.WebControls.LinkButton btnNext;
 26   protected System.Web.UI.WebControls.LinkButton btnLast;
 27   private OleDbConnection cn =  new OleDbConnection();
 28 
 29   private  void Page_Load( object sender, System.EventArgs e)
 30  {
 31    //  在此处放置用户代码以初始化页面
 32    btnFirst.Text =  " 最首页 ";
 33   btnPrev.Text =  " 前一页 ";
 34   btnNext.Text =  " 下一页 ";
 35   btnLast.Text =  " 最后页 ";
 36   OpenDatabase();
 37   BindGrid();
 38  }
 39   private  void OpenDatabase()
 40  {
 41   cn.ConnectionString =  " Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "
 42        + HttpContext.Current.Server.MapPath( " http://www.cnblogs.com/aspxWeb.mdb.ascx ");
 43   cn.Open();
 44  }
 45   private  void ShowStats()
 46  {
 47   lblCurrentIndex.Text =  " 第  " + (MyDataGrid.CurrentPageIndex +  1).ToString() +  "  页 ";
 48   lblPageCount.Text =  " 总共  " + MyDataGrid.PageCount.ToString() +  "  页 ";
 49  }
 50 
 51   public  void PagerButtonClick( object sender, EventArgs e)
 52  {
 53    string arg = ((LinkButton)sender).CommandArgument.ToString();
 54    switch(arg)
 55   {
 56     case  " next ":
 57      if (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount -  1))
 58     {
 59      MyDataGrid.CurrentPageIndex +=  1;
 60     }
 61      break;
 62     case  " prev ":
 63      if (MyDataGrid.CurrentPageIndex >  0)
 64     {
 65      MyDataGrid.CurrentPageIndex -=  1;
 66     }
 67      break;
 68     case  " last ":
 69     MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount -  1);
 70      break;
 71     default:
 72     MyDataGrid.CurrentPageIndex = System.Convert.ToInt32(arg);
 73      break;
 74   }
 75   BindGrid();
 76   ShowStats();
 77  }
 78   public  void BindGrid()
 79  {
 80   OleDbConnection myConnection = cn;
 81   DataSet ds  =  new DataSet();
 82   OleDbDataAdapter adapter  =  new OleDbDataAdapter( " Select Title,CreateDate from Document ", myConnection);
 83   adapter.Fill(ds,  " Document ");
 84   MyDataGrid.DataSource = ds.Tables[ " Document "].DefaultView;
 85   MyDataGrid.DataBind();
 86   ShowStats();
 87  }
 88  
 89  #region Web Form Designer generated code
 90   override  protected  void OnInit(EventArgs e)
 91  {
 92    //
 93     //  CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
 94     //
 95    InitializeComponent();
 96    base.OnInit(e);
 97  }
 98 
 99   ///   <summary>
100    ///  设计器支持所需的方法 - 不要使用代码编辑器修改
101    ///  此方法的内容。
102    ///   </summary>
103    private  void InitializeComponent()
104  {
105    this.MyDataGrid.PageIndexChanged +=  new System.Web.UI.WebControls.DataGridPageChangedEventHandler( this.OnPageIndexChanged);
106    this.btnFirst.Click +=  new System.EventHandler( this.PagerButtonClick);
107    this.btnPrev.Click +=  new System.EventHandler( this.PagerButtonClick);
108    this.btnNext.Click +=  new System.EventHandler( this.PagerButtonClick);
109    this.btnLast.Click +=  new System.EventHandler( this.PagerButtonClick);
110    this.Load +=  new System.EventHandler( this.Page_Load);
111 
112  }
113  #endregion
114 
115   private  void OnPageIndexChanged( object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
116  {
117   int startIndex ;
118   startIndex = MyDataGrid.CurrentPageIndex * MyDataGrid.PageSize;
119   MyDataGrid.CurrentPageIndex = e.NewPageIndex;
120   BindGrid();
121   ShowStats();
122  }
123 }
124 }

 

转载于:https://www.cnblogs.com/root7/archive/2012/03/01/2375882.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值