1,分页嘛先要有个SQL 程序才能写下去 先提供下SQL的思路,对于分页的SQL我之前帖子有介绍,就不一一介绍了

  1. select top pageSize * --显示数量
  2. from (select row_number()
  3. over(order by EG_ID asc) as rownumber,* --行数
  4. from ExchangGifts) temp_row
  5. where rownumber>((pageIndex-1)*pageSize);--开始页数 --建议SQL

存储过程参考下

  1. CREATE proc [dbo].[P_GetCardLevelsPaged]
  2. @PageSize int,
  3. @PageIndex int,
  4. @Count int output,
  5. @LevelName varchar(20)
  6. as
  7. begin
  8. select top(@PageSize) * from CardLevels
  9. where CL_ID not in(
  10. select top(@PageSize*(@PageIndex-1)) CL_ID from CardLevels where CL_LevelName like '%'+@LevelName+'%'
  11. )
  12. and CL_LevelName like '%'+@LevelName+'%'
  13. select @Count=COUNT(*) from CardLevels where CL_LevelName like '%'+@LevelName+'%'
  14. end
  15.  
  16. GO

2,例子中用的分页SQL:

  1. SELECT * FROM(SELECT ROW_NUMBER() OVER(order BY E.EG_ID) as rows ,E. * FROM ExchangGifts E)
  2. AS A WHERE A.rows BETWEEN 1 and 10;

代码  注释详细

  1. public partial class XtraForm2 : DevExpress.XtraEditors.XtraForm
  2. {
  3.  
  4. private int pageIndex = ; //当前页码
  5. private int pageSize = ; //每页的尺寸
  6. private int pageCount = ; //总页数
  7.  
  8. public XtraForm2()
  9. {
  10. InitializeComponent();
  11. }
  12.  
  13. //获取记录总数
  14. public int GetRecordCount()
  15. {
  16. int count = ;
  17. string sql = "select count(*) from ExchangGifts";
  18. count = Convert.ToInt32(DBHelper.GetScalar(sql, null, false));
  19. return count;
  20. }
  21.  
  22. //获取当前页的记录列表
  23. public DataTable GetListByPage(int startIndex, int endIndex)
  24. {
  25. DataTable dt = new DataTable();
  26. StringBuilder strSql = new StringBuilder();
  27. strSql.Append("select * from (");
  28. strSql.Append("select row_number() over(order by t.[EG_ID]) as rows,t.* from ExchangGifts as t) as tt");
  29. strSql.AppendFormat(" where tt.rows between {0} and {1} ", startIndex, endIndex);
  30. dt = DBHelper.Query(strSql.ToString(), null);
  31. return dt;
  32. }
  33.  
  34. //绑定数据表格控件
  35. public void BindPageGridList()
  36. {
  37. //记录的开始索引
  38. int startIndex = (pageIndex - ) * pageSize + ;
  39. //记录的结束索引
  40. int endIndex = pageIndex * pageSize;
  41. //总记录数
  42. int row = GetRecordCount();
  43.  
  44. if (row % pageSize > )
  45. {
  46. pageCount = row / pageSize + ;
  47. }
  48. else
  49. {
  50. pageCount = row / pageSize;
  51. }
  52. //如果当前是最后一页,设置最后一行记录的索引
  53. if (pageIndex == pageCount)
  54. {
  55. endIndex = row;
  56. }
  57.  
  58. DataTable dt = this.GetListByPage(startIndex, endIndex);
  59. gc.DataSource = dt;
  60. nvgDataPager.DataSource = dt;
  61. nvgDataPager.TextStringFormat = string.Format("第{0}页,共{1}页", pageIndex, pageCount);
  62. }
  63.  
  64. private void nvgDataPager_ButtonClick(object sender, NavigatorButtonClickEventArgs e)
  65. {
  66. string type = e.Button.Tag.ToString();
  67. switch (type)
  68. {
  69. case "首页":
  70. pageIndex = ;
  71. break;
  72. case "末页":
  73. pageIndex = pageCount;
  74. break;
  75. case "下一页":
  76. if (pageIndex < pageCount)
  77. {
  78. pageIndex++;
  79. }
  80. break;
  81. case "上一页":
  82. if (pageIndex > )
  83. {
  84. pageIndex--;
  85. }
  86. break;
  87. }
  88. this.BindPageGridList(); //绑定当前页到控件
  89. }
  90.  
  91. }

效果图

WinFrom 在Devexpress里用GridControl和DataNavigtor进行分页的更多相关文章

  1. DevExpress控件GridControl中的布局详解 【转】

    DevExpress控件GridControl中的布局详解 [转] 2012-10-24 13:27:28|  分类: devexpress |  标签:devexpress  |举报|字号 订阅   ...

  2. DevExpress控件-GridControl根据条件改变单元格(Dev GridControl 单元格着色)

    DevExpress控件-GridControl根据条件改变单元格颜色,如下图: 解决办法:可以参考:http://www.cnblogs.com/zeroone/p/4311191.html 第一步 ...

  3. DevExpress控件-- Gridcontrol合并表头

    写在前面的话: 在园子里逛了有一段时间了,一直想写点东西,但苦于自己的水平有限,生怕写出来的东西浪费了读者的时间.楼主有幸参加了公司DevExpress控件的培训,独乐乐不如众乐乐,特附上Demo以飨 ...

  4. DevExpress使用方法GridControl总结

    1.隐藏最上面的GroupPanel gridView1.OptionsView.ShowGroupPanel=false; 2.得到当前选定记录某字段的值 sValue=Table.Rows[gri ...

  5. DevExpress控件GridControl使用 z

    设置选中行的背景色.而不改变前景色. EnableAppearanceFocusedCell = False, EnableAppearanceFocusedRow = False private v ...

  6. DevExpress 控件 GridControl常见用法

    刚接触DevExpress第三方控件,把GridControl的常见用法整理一下,以供参考: 说明: gcTest   GridControl gvText    GridView //隐藏最上面的G ...

  7. DevExpress控件-GridControl根据条件改变单元格/行颜色--转载

    DevExpress控件-数据控件GridControl,有时我们需要根据特定条件改变符合条件的行或者单元格颜色达到突出显示目的,现在动起鼠标跟我一起操作吧,对的,要达到这个目的您甚至都不用动键盘. ...

  8. DevExpress,LayoutControl,TreeList,GridControl等

    1.显示边框进行折叠 选择一个layoutControlGroupX 将其GroupBordersVisible设置成True,将TextVisiable=True 2. TreeList 2.1需要 ...

  9. DevExpress 小计 GridControl 隔行换行

    摘自: http://www.cnblogs.com/yuerdongni/archive/2012/09/08/2676753.html 1. 如何解决单击记录整行选中的问题 View->Op ...

随机推荐

  1. [bzoj1005] [洛谷P2624] 明明的烦恼

    Description 自从明明学了树的结构,就对奇怪的树产生了兴趣-- 给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树? Input 第一行为N(0 ...

  2. 进击.net 三大框架

    spring mybatis NHibernate

  3. c#数字图像处理(四)线性点运算

    灰度图像的点运算可分为线性点运算和非线性点运算两种.4.1线性点运算定义线性点运算就是输出灰度级与输入灰度级呈线性关系的点运算.在这种情况下,灰度变换函数的形式为: g(x, y)=pf(x,y)+L ...

  4. 谈谈模型融合之三 —— GBDT

    前言 本来应该是年后就要写的一篇博客,因为考完试后忙了一段时间课设和实验,然后回家后又在摸鱼,就一直没开动.趁着这段时间只能呆在家里来把这些博客补上.在之前的文章中介绍了 Random Forest ...

  5. 2020.2,《The day after tomorrow》

    “The day after tomorrow, where will you be?” 2020春节冠状病毒肆虐被迫禁足家里,无意间打开了2004年由德国罗兰·艾默里奇(Roland Emmeric ...

  6. mysql安装教程linux

    https://www.cnblogs.com/YangshengQuan/p/8431520.html 设置sql远程访问

  7. phpstudy切换的php7.1版本php-cgi报错

    phpstudy切换的php7.1版本php-cgi报错 是因为没有装对应vc的插件. 下载地址:https://www.microsoft.com/zh-CN/download/details.as ...

  8. 命令行下使用RAR和7-Zip压缩数据

    3.6.1 RAR Winrar的命令行模式程序在安装目录下的 rar.exe (打包压缩程序),unrar.exe(解压缩程序) WinRAR的常用参数如下: -a 添加文件到压缩文件 -k 锁定压 ...

  9. MySQL8.0 MIC高可用集群搭建

    mysql8.0带来的新特性,结合MySQLshell,不需要第三方中间件,自动构建高可用集群. mysql8.0作为一款新产品,其内置的mysq-innodb-cluster(MIC)高可用集群的技 ...

  10. vue项目使用keep-alive

    作用: 在vue项目中,难免会有列表页面或者搜索结果列表页面,点击某个结果之后,返回回来时,如果不对结果页面进行缓存,那么返回列表页面的时候会回到初始状态,但是我们想要的结果是返回时这个页面还是之前搜 ...