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

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

存储过程参考下

CREATE proc [dbo].[P_GetCardLevelsPaged]
@PageSize int,
@PageIndex int,
@Count int output,
@LevelName varchar(20)
as
begin
select top(@PageSize) * from CardLevels
where CL_ID not in(
select top(@PageSize*(@PageIndex-1)) CL_ID from CardLevels where CL_LevelName like '%'+@LevelName+'%'
)
and CL_LevelName like '%'+@LevelName+'%'
select @Count=COUNT(*) from CardLevels where CL_LevelName like '%'+@LevelName+'%'
end GO

2,例子中用的分页SQL:

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

代码  注释详细

 public partial class XtraForm2 : DevExpress.XtraEditors.XtraForm
{ private int pageIndex = ; //当前页码
private int pageSize = ; //每页的尺寸
private int pageCount = ; //总页数 public XtraForm2()
{
InitializeComponent();
} //获取记录总数
public int GetRecordCount()
{
int count = ;
string sql = "select count(*) from ExchangGifts";
count = Convert.ToInt32(DBHelper.GetScalar(sql, null, false));
return count;
} //获取当前页的记录列表
public DataTable GetListByPage(int startIndex, int endIndex)
{
DataTable dt = new DataTable();
StringBuilder strSql = new StringBuilder();
strSql.Append("select * from (");
strSql.Append("select row_number() over(order by t.[EG_ID]) as rows,t.* from ExchangGifts as t) as tt");
strSql.AppendFormat(" where tt.rows between {0} and {1} ", startIndex, endIndex);
dt = DBHelper.Query(strSql.ToString(), null);
return dt;
} //绑定数据表格控件
public void BindPageGridList()
{
//记录的开始索引
int startIndex = (pageIndex - ) * pageSize + ;
//记录的结束索引
int endIndex = pageIndex * pageSize;
//总记录数
int row = GetRecordCount(); if (row % pageSize > )
{
pageCount = row / pageSize + ;
}
else
{
pageCount = row / pageSize;
}
//如果当前是最后一页,设置最后一行记录的索引
if (pageIndex == pageCount)
{
endIndex = row;
} DataTable dt = this.GetListByPage(startIndex, endIndex);
gc.DataSource = dt;
nvgDataPager.DataSource = dt;
nvgDataPager.TextStringFormat = string.Format("第{0}页,共{1}页", pageIndex, pageCount);
} private void nvgDataPager_ButtonClick(object sender, NavigatorButtonClickEventArgs e)
{
string type = e.Button.Tag.ToString();
switch (type)
{
case "首页":
pageIndex = ;
break;
case "末页":
pageIndex = pageCount;
break;
case "下一页":
if (pageIndex < pageCount)
{
pageIndex++;
}
break;
case "上一页":
if (pageIndex > )
{
pageIndex--;
}
break;
}
this.BindPageGridList(); //绑定当前页到控件
} }

效果图

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. 深入学习MySQL 01 一条查询语句的执行过程

    在学习SpringCloud的同时,也在深入学习MySq中,听着<mysql45讲>,看着<高性能MySQL>,本系列文章是本人学习过程的总结,水平有限,仅供参考,若有不对之处 ...

  2. printf 函数笔记

    函数声明 int printf (const char*, ...); 说明 <返回值> printf ("<格式化字符串>", <参数表>); ...

  3. Linux Centos7 在桌面添加快捷方式

    当时,刚刚安装好centos7,又下载好了jb家的软件,但是每一次都要用命令行才能运 我想要的是下面的效果,那是我后来才研究出来的 我看到了自动生成的为什么可以用,我的打开了源文件研究了一下 第一,先 ...

  4. PSR标准规范

    PSR标准规范 基本代码规范 PHP代码文件 必须 以 不带 BOM 的 UTF-8 编码: 类的命名 必须 遵循 StudlyCaps 大写开头的驼峰命名规范: 类中的常量所有字母都 必须 大写,单 ...

  5. ArrayAccess 接口(源码)

    The ArrayAccess interface (PHP 5 >= 5.0.0, PHP 7) Introduction Interface to provide accessing obj ...

  6. 看片微信号+薇myy9199买片微信号+myy9199绝对靠谱号

    最新看片卖片微信号+myy9199,2020最新有效靠谱号,诚信有效,死链包换,2019年11月,我决定学习计算机编程,以java语言为主.我就读于传统工科专业,没怎么接触过计算机相关概念与课程,我知 ...

  7. LESS 用法入门

    本文旨在加深对 LESS 的理解和记忆,供自己开发时参考.相信对没有接触过 LESS 的程序员还是有用的,大佬绕路. 一. 安装和使用 LESS 1.1 安装 使用命令行安装 LESS npm ins ...

  8. 如何最快实现物流即使查询功能-物流轨迹查询API

    上一篇文章我们介绍了一个物流服务提供商,推荐大家使用快递鸟接口,主要介绍了如何注册账号,获得密钥,找不到注册地址的,我在发一下: http://kdniao.com/reg 今天我们来聊如何利用快递鸟 ...

  9. 手把手实操教程!使用k3s运行轻量级VM

    前 言 k3s作为轻量级的Kubernetes发行版,运行容器是基本功能.VM的管理原本是IaaS平台的基本能力,随着Kubernetes的不断发展,VM也可以纳入其管理体系.结合Container和 ...

  10. 使用logstash结合logback收集微服务日志

    因为公司开发环境没有装elk,所以每次查看各个微服务的日志只能使用如下命令 这样子访问日志是并不方便,于是想为每个微服务的日志都用logstash收集到一个文件out中,那以后只要输出这个文件则可查看 ...