WinFrom 在Devexpress里用GridControl和DataNavigtor进行分页
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进行分页的更多相关文章
- DevExpress控件GridControl中的布局详解 【转】
DevExpress控件GridControl中的布局详解 [转] 2012-10-24 13:27:28| 分类: devexpress | 标签:devexpress |举报|字号 订阅 ...
- DevExpress控件-GridControl根据条件改变单元格(Dev GridControl 单元格着色)
DevExpress控件-GridControl根据条件改变单元格颜色,如下图: 解决办法:可以参考:http://www.cnblogs.com/zeroone/p/4311191.html 第一步 ...
- DevExpress控件-- Gridcontrol合并表头
写在前面的话: 在园子里逛了有一段时间了,一直想写点东西,但苦于自己的水平有限,生怕写出来的东西浪费了读者的时间.楼主有幸参加了公司DevExpress控件的培训,独乐乐不如众乐乐,特附上Demo以飨 ...
- DevExpress使用方法GridControl总结
1.隐藏最上面的GroupPanel gridView1.OptionsView.ShowGroupPanel=false; 2.得到当前选定记录某字段的值 sValue=Table.Rows[gri ...
- DevExpress控件GridControl使用 z
设置选中行的背景色.而不改变前景色. EnableAppearanceFocusedCell = False, EnableAppearanceFocusedRow = False private v ...
- DevExpress 控件 GridControl常见用法
刚接触DevExpress第三方控件,把GridControl的常见用法整理一下,以供参考: 说明: gcTest GridControl gvText GridView //隐藏最上面的G ...
- DevExpress控件-GridControl根据条件改变单元格/行颜色--转载
DevExpress控件-数据控件GridControl,有时我们需要根据特定条件改变符合条件的行或者单元格颜色达到突出显示目的,现在动起鼠标跟我一起操作吧,对的,要达到这个目的您甚至都不用动键盘. ...
- DevExpress,LayoutControl,TreeList,GridControl等
1.显示边框进行折叠 选择一个layoutControlGroupX 将其GroupBordersVisible设置成True,将TextVisiable=True 2. TreeList 2.1需要 ...
- DevExpress 小计 GridControl 隔行换行
摘自: http://www.cnblogs.com/yuerdongni/archive/2012/09/08/2676753.html 1. 如何解决单击记录整行选中的问题 View->Op ...
随机推荐
- Java入门 - 语言基础 - 16.数组
原文地址:http://www.work100.net/training/java-array.html 更多教程:光束云 - 免费课程 数组 序号 文内章节 视频 1 概述 2 声明数组变量 3 创 ...
- [LOJ#2017][轮廓线DP][KMP]「SCOI2016」围棋
题目传送门 看到 \(m\le 12\) 和 \(c\le 6\) ,容易想到状压 DP 考虑转化成 \(3^{nm}\) 减去不合法的方案数,轮廓线 DP :\(f[i][j][S][k][h]\) ...
- KD-tree 学习小记
考 \(NOI\) 时不会,感觉很亏.于是学了一上午,写了一晚上. 感觉这东西就是个复杂度玄学的高级暴力 (大雾 KD-tree 基本信息 \(D\) 就是 \(Dimension\) ,维度的意思. ...
- 【Vue】强化表单的9个Vue输入库
一个设计不当的表单可能会使用户远离你的网站.幸运的是,对Vue开发者,有大量可用的Vue输入库让你轻松整理表单. 拥有直观而且对用户友好的表单有诸多好处,比如: 更高的转化率 更好的用户体验 更专业的 ...
- linux系统iot平台编程阶段总结
1.inline内联函数 在C语言中,如果一些函数被频繁调用,不断地有函数入栈,即函数栈,会造成栈空间或栈内存的大量消耗. 为了解决这个问题,特别的引入了inline修饰符,表示为内联函数. 在使用循 ...
- applyColorMap 在OpenCV中对灰度图进行颜色映射,实现数据的色彩化
什么是色彩映射: 说直白点就是将各种数据映射成颜色信息,例如:温度,高度,压力,密度,湿度,城市拥堵数据等等 色彩化后更加直观表达 在OpenCV里可以使用 Mat im_gray = imread( ...
- ios--->ios沙盒总结
ios沙盒总结 沙盒介绍 iOS应用程序只能在该程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等 ...
- 手写 Promise
在上一章节中我们了解了 Promise 的一些易错点,在这一章节中,我们会通过手写一个符合 Promise/A+ 规范的 Promise 来深入理解它,并且手写 Promise 也是一道大厂常考题,在 ...
- STM8L15X 硬件I2C调试总结
最近接到一个项目需要使用STM8L上硬件I2C与SN3731通信,用户方是个方案商,硬件设计人员也没留测试点,直接就把板子焊了拿来了.调试时除了swio口能用所有都不能用,硬件设计大概是为了显得自己焊 ...
- Word文档分节设置页码
在一篇论文中需要将摘要和目录作为一部分设置罗马数字页码,正文部分设置阿拉伯数字页码. 大致效果如下图所示: 这里面用到了分节符,步骤如下: 1 :点击开始菜单栏下 显示/隐藏编辑标记 2:点击插入菜单 ...