当前位置导航:炫浪网>>网络学院>>网页制作>>ASP.NET教程

DataGridView分页功能的实现

  最近做了一个DataGridView的分页显示Demo。也是看见网络上很多人询问关于DataGridView如何做分页。根据我的认 识,Visual Sutido 2005里的DataGridView控件是没有带分页属性的,因此咱们必须通过写代码去实现分页功能。

  好了,先看一下Demo的界面。

  从界面可以看到,在设计时需要一个DataGridView、BindingNavigate、BindingSource控件,分别命名为dgvInfo、bdnInfo、bdsInfo。

  在bdnInfo控件中添加几个用于选择页面的lable和botton,如上图所示。

  设计时:

  1 // 1、定义几个所需的公有成员:

  2

  3       int pageSize = 0;     //每页显示行数

  4       int nMax = 0;         //总记录数

  5       int pageCount = 0;    //页数=总记录数/每页显示行数

  6       int pageCurrent = 0;   //当前页号

  7       int nCurrent = 0;      //当前记录行

  8       DataSet ds = new DataSet();

  9       DataTable dtInfo = new DataTable();

  10

  11 //2、在窗体载入事件中,从数据源读取记录到DataTable中:

  12

  13       string strConn = "SERVER=127.0.0.1;DATABASE=NORTHWIND;UID=SA;PWD=ULTRATEL";   //数据库连接字符串

  14       SqlConnection conn = new SqlConnection(strConn);

  15       conn.Open();

  16       string strSql = "SELECT * FROM CUSTOMERS";

  17       SqlDataAdapter sda = new SqlDataAdapter(strSql,conn);

  18       sda.Fill(ds,"ds");

  19       conn.Close();

  20       dtInfo = ds.Tables[0];

  21       InitDataSet();

  22

  23 //3、用当前页面数据填充DataGridView

  24

  25       private void InitDataSet()

  26       {

  27           pageSize = 20;      //设置页面行数

  28           nMax = dtInfo.Rows.Count;

  29           pageCount=(nMax/pageSize);    //计算出总页数

  30           if ((nMax % pageSize) > 0) pageCount++;

  31           pageCurrent = 1;    //当前页数从1开始

  32           nCurrent = 0;       //当前记录数从0开始

  33           LoadData();

  34        }

  35

  36       private void LoadData()

  37       {

  38           int nStartPos = 0;   //当前页面开始记录行

  39           int nEndPos = 0;     //当前页面结束记录行

  40           DataTable dtTemp = dtInfo.Clone();   //克隆DataTable结构框架

  41

相关内容
赞助商链接