DataGridView 的分页处理

2016-02-19 17:59 26 1 收藏

下面请跟着图老师小编一起来了解下DataGridView 的分页处理,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!

【 tulaoshi.com - Web开发 】

  只是解决DataGridview刷新慢的办法。
  如果要考虑效率,还是结合分页的"存储过程"比较好,只是变通了一下。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

    1        #region 数据处理
    2         /// summary
    3         /// 得到期初数据
    4         /// /summary
    5         private void getFillDateset()
    6         {
    7             try
    8             {
    9                 //每页显示数
   10                 pageSize = 10;
   11                 //得到最大记录数
   12                 maxRec = dtSource.Rows.Count;
   13                 //共有多少页
   14                 pageCount = (maxRec / pageSize);
   15                 //取余数
   16                 if ((maxRec % pageSize) 0)
   17                 {
   18                     pageCount++;
   19                 }
   20                 //默认第一页
   21                 currentPage = 1;
   22                 recNo = 0;
   23                 LoadPage();
   24             }
   25             catch
   26             {
   27             }
   28         }
   29
   30
   31         /// summary
   32         /// 判断是否数据已经加载
   33         /// /summary
   34         /// returns/returns
   35         private bool CheckFillButton()
   36         {
   37             if (pageSize == 0) return false;
   38             else return true;
   39         }
   40
   41        /// summary
   42         /// 取DataTable的数据
   43        /// /summary
   44         private void LoadPage()
   45         {
   46             int startRec;
   47             int endRec;
   48             DataTable dtTemp;
   49  
   50
   51             dtTemp = dtSource.Clone();
   52             if (currentPage == pageCount) endRec = maxRec;
   53             else endRec = pageSize * currentPage;
   54             startRec = recNo;
   55             for (int i = startRec; i endRec; i++)
   56             {
   57                 dtTemp.ImportRow(dtSource.Rows[i]);
   58                 recNo++;
   59             }
   60             this.dataGridView1.DataSource = dtTemp;
   61         }
   62
   63        /// summary
   64        /// 分页事件(取各个按键的Tag值)
   65        /// /summary
   66        /// param name="sender"/param
   67        /// param name="e"/param
   68         private void changepage(object sender, EventArgs e)
   69         {
   70             if (!CheckFillButton()) return;
   71             int myint = Convert.ToInt16((string)(sender as Button).Tag);
   72             switch (myint)
   73             {
   74                 case 1:
   75                     if (currentPage == 1)
   76                     {
   77                         MessageBox.Show("The frist page now!");
   78                         return;
   79
   80                     }
   81                     currentPage = 1;
   82                     recNo = 0;
   83                     LoadPage();
   84                     break;
   85                 case 2:
   86                     currentPage++;
   87                     if (currentPage pageCount)
   88                     {
   89                         currentPage = pageCount;
   90                         if (recNo == maxRec)
   91                         {
   92                             MessageBox.Show("The last page now!");
   93                             return;
   94                         }
   95                         else
   96                             recNo = pageSize * (currentPage + 1);
   97                     }
   98                     LoadPage();
   99                     break;
  100                 case 3:
  101                     if (currentPage == pageCount)
  102                         recNo = pageSize * (currentPage - 2);
  103                     currentPage--;
  104                     if (currentPage 1)
  105                     {
  106                         MessageBox.Show("The frist page now!");
  107                         currentPage = 1;
  108                         return;
  109                     }
  110                     else
  111                         recNo = pageSize * (currentPage - 1);
  112
  113                     LoadPage();
  114                     break;
  115
  116                 case 4:
  117                     if (!CheckFillButton()) return;
  118                     if (recNo == maxRec)
  119                     {
  120                         MessageBox.Show("The Last page now!");
  121                         return;
  122                     }
  123                     currentPage = pageCount;
  124                     recNo = pageSize * (currentPage - 1);
  125                     LoadPage();
  126                     break;
  127             }
  128
  129         }
  130
  131 #endregion
  http://www.cnblogs.com/azhai/archive/2006/09/18/507624.html

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

来源:https://www.tulaoshi.com/n/20160219/1616539.html

延伸阅读
DataGrid连接Access的快速分页法(5)——实现快速分页 我使用Access自带的Northwind中文数据库的“订单明细”表作为例子,不过我在该表添加了一个名为“Id”的字段,数据类型为“自动编号”,并把该表命名为“订单明细表”。 FastPaging_DataSet.ASPx ----------------------------------------------------------------------------...
标签: ASP
Function ExportPageInfo(ByRef rs,curpage,i,LinkFile) Dim retval, j, pageNumber, BasePage retval = "第" & curpage & "页/总" & rs.pagecount & "页 "  retval = retval & "本页" & ...
标签: ASP
  时间关系,没有经过完全测试,这个是大概意思。 CREATE PROCEDURE getnotes    @forumID varchar(10),    @a_intPageNo int ,    @a_intPageSize int,    @rootID varchar(10) AS        declare @m_intRecordNumber int   ...
标签: ASP
  if exists(select * from sysobjects where ID = object_id("up_TopicList"))    drop proc up_TopicList go create proc up_TopicList             @a_ForumID int , @a_intDays int , @a_intPageNo int , @a_intPageSize tinyint  &nbs...
标签: Web开发
今天心情有点激动,想把"关于用DW+ASP实现分页技术的参考"分享给用DW+ASP做网页的朋友们.去掉只有"第一页,前一页,下一页,最后一页"的小痛苦 此效果最后的显示是:第N页[共*页] 1 2 3 4 5 6 7 8 9 10 。 用DW+ASP做网页时,在绑定记录集后,代码页里马上出现以下代码: %  Dim Recordset1  Dim Recordset1_numRows&nb...

经验教程

600

收藏

29
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部