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 ...
随机推荐
- [题解][Codeforces]Codeforces Round #602 (Div. 1) 简要题解
orz djq_cpp lgm A 题意 给定一个分别含有 \(\frac n2\) 个左括号和右括号的括号序列 每次可以将序列的一个区间翻转 求一个不超过 \(n\) 次的操作方案,使得操作完之后的 ...
- 创建认证提供器 安全性与收尾工作 精通ASP-NET-MVC-5-弗瑞曼
- c#数字图像处理(三)灰度直方图
灰度直方图是灰度的函数,描述的是图像中具有该灰度级的像素的个数.如果用直角坐标系来表示,则它的横坐标是灰度级,纵坐标是该灰度出现的概率(像素的个数). using System; using Syst ...
- css的字体单位
在css中的字体单位主要以px.em.rem为主.其中px也就是像素,是一种字体长度,它的长度是相对于显示器的品目分辨率而言的.一般情况下在浏览器中默认字体的大小是16px.其中em是相对字体.em的 ...
- oracle11G 已开启监听,但远程连接依旧无监听解决过程
1.连接数据库显示无监听程序,首先查看服务器的oracle监听服务是否开启,服务名称:OracleOraDb11g_home1TNSListener(具体环境中可能不完全一样,但是认准TNSListe ...
- java编写杨辉三角
import java.util.Scanner; /* *计算杨辉三角: * 规律:两边都是1 * 从第三行开始,上一行的前一个元素+与其并排的元素等于下面的元素 * 例如: * 1 * 11 * ...
- windows 通过AppInit加载任意dll
windows操作系统允许将用户提供的dll加载到所有的进程的内存空间中.该功能可以用来做后门持久化.有点类似于linux的ld_preload环境变量.在进程启动的时候,操作系统会将用户提供的dll ...
- 数百个 HT 工业互联网 2D 3D 可视化应用案例分享 - 2019 篇
继<分享数百个 HT 工业互联网 2D 3D 可视化应用案例>2018 篇,图扑软件定义 2018 为国内工业互联网可视化的元年后,2019 年里我们与各行业客户进行了更深度合作,拓展了H ...
- kubernetes从私有仓库下载遇到的坑
1.必须要在所有的k8s节点上配置私有仓库的地址.(master和node) 2.创建secret kubectl create secret docker-registry secret名字 --d ...
- Android View如何获取焦点
Android新启动Activity,dialog或者其他窗体中中包含EditText, 新启动的activity的焦点默认在EditText上,这是android系统会弹出软键盘,挤压activit ...