网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.在自定义HttpHandler中使用Sessi.
.ASP.NET服务器控件之视图状态.
.开发时复制aspx网页的方法_AX.
.ASP.NET中的HTTP模块和处理程序.
.ASP.NET基本编程习惯.
.在ASP.NET Atlas中调用Web Servi.
.动态创建MSSQL数据库表存储过程.
.常用的匹配正则表达式和实例 .
.在使用ASP.NET网站管理工具出现“.
.TreeView使用笔记.
.net中统一的存储过程调用方法.
.asp.net自动执行任务-解决应用池.
.使用ASP.Net Forms模式实现WebSe.
.DataSet 添加数据集、行、列、主.
.利用ASP.NET技术动态生成HTML页面.
.ASP.NET 2.0 中的母版页详解.
.ASP.NET 2.0-选用DataSet或Data.
.为ASP.NET 2.0菜单控件增加targe.
.使用ASP.NET AJAX框架扩展HTML M.
.如何最大限度提高.NET的性能.

DataGridView 的分页处理

发表日期:2006-9-19


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

  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

上一篇:asp.net menu "Operation aborted" 人气:5487
下一篇:写个偷全国公交数据库的程序 人气:5411
浏览全部DataGridView的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐