winform 分页控件
2016-05-19 21:13
483 查看
http://www.cnblogs.com/liuyunsheng/p/4853387.html
http://www.cnblogs.com/wuhuacong/archive/2011/07/03/2096760.html http://www.docin.com/p-605821963.html http://www.cnblogs.com/duanseven/archive/2010/01/02/1637860.html http://blog.csdn.net/shunlu/article/details/40536363 http://www.codeproject.com/Tips/794969/A-Pagination-Solution-using-IEnumerable-T http://www.codeproject.com/search.aspx?q=Pagination+&doctypeid=1%3b2%3b3%3b13%3b14
以前都是从事B/S开发,由于公司有个比较大的C/S项目,在使用DATAGRIDVIEW的时候,显示数据量比较大,所以才用分页模式,也不知道这样是否正确。
想找个C/S下面的分页控件,都没有什么好的,就自己跟B/S下的分页控件,修改成WINFORM下面的。
首先创建一个用户控件名称为pager,在控件中拖入bindingNavigator和bindingSource,修改bindingNavigator,加入必要的一些控件。
效果如下:
namespace WindowsApp.MyControl ALTER PROCEDURE SP_Pagination ( @Tables varchar(2000), @PrimaryKey varchar(500), @Sort varchar(500) = NULL, @CurrentPage int = 1, @PageSize int = 10, @Fields varchar(2000) = '*', @Filter varchar(1000) = NULL, @Group varchar(1000) = NULL ) AS IF @Sort IS NULL OR @Sort = '' SET @Sort = @PrimaryKey DECLARE @SortTable varchar(1000) DECLARE @SortName varchar(1000) DECLARE @strSortColumn varchar(1000) DECLARE @operator char(2) DECLARE @type varchar(1000) DECLARE @prec int IF CHARINDEX('DESC',@Sort)>0 BEGIN SET @strSortColumn = REPLACE(@Sort, 'DESC', '') SET @operator = '<=' END ELSE BEGIN IF CHARINDEX('ASC', @Sort) = 0 SET @strSortColumn = REPLACE(@Sort, 'ASC', '') SET @operator = '>=' END IF CHARINDEX('.', @strSortColumn) > 0 BEGIN SET @SortTable = SUBSTRING(@strSortColumn, 0, CHARINDEX('.',@strSortColumn)) SET @SortName = SUBSTRING(@strSortColumn, CHARINDEX('.',@strSortColumn) + 1, LEN(@strSortColumn)) END ELSE BEGIN SET @SortTable = @Tables SET @SortName = @strSortColumn END SELECT @type=t.name, @prec=c.prec FROM sysobjects o JOIN syscolumns c on o.id=c.id JOIN systypes t on c.xusertype=t.xusertype WHERE o.name = @SortTable AND c.name = @SortName IF CHARINDEX('char', @type) > 0 SET @type = @type + '(' + CAST(@prec AS varchar) + ')' DECLARE @strPageSize varchar(500) DECLARE @strStartRow varchar(500) DECLARE @strFilter varchar(1000) DECLARE @strSimpleFilter varchar(1000) DECLARE @strGroup varchar(1000) IF @CurrentPage < 1 SET @CurrentPage = 1 SET @strPageSize = CAST(@PageSize AS varchar(500)) SET @strStartRow = CAST(((@CurrentPage - 1)*@PageSize + 1) AS varchar(500)) IF @Filter IS NOT NULL AND @Filter != '' BEGIN SET @strFilter = ' WHERE ' + @Filter + ' ' SET @strSimpleFilter = ' AND ' + @Filter + ' ' END ELSE BEGIN SET @strSimpleFilter = '' SET @strFilter = '' END IF @Group IS NOT NULL AND @Group != '' SET @strGroup = ' GROUP BY ' + @Group + ' ' ELSE SET @strGroup = '' EXEC( ' DECLARE @SortColumn ' + @type + ' SET ROWCOUNT ' + @strStartRow + ' SELECT @SortColumn=' + @strSortColumn + ' FROM ' + @Tables + @strFilter + ' ' + @strGroup + ' ORDER BY ' + @Sort + ' SET ROWCOUNT ' + @strPageSize + ' SELECT ' + @Fields + ' FROM ' + @Tables + ' WHERE ' + @strSortColumn + @operator + ' @SortColumn ' + @strSimpleFilter + ' ' + @strGroup + ' ORDER BY ' + @Sort + ' ' )
public class PageData private void ReceiveOrderJLForm_Load(object sender, EventArgs e) private int dgvBind() private int pager1_EventPaging(WindowsApp.MyControl.EventPagingArg e) return dgvBind(); }
效果如下
http://files.cnblogs.com/nosnowwolf/Pager.rar 控件下载
http://www.cnblogs.com/wuhuacong/archive/2011/07/03/2096760.html http://www.docin.com/p-605821963.html http://www.cnblogs.com/duanseven/archive/2010/01/02/1637860.html http://blog.csdn.net/shunlu/article/details/40536363 http://www.codeproject.com/Tips/794969/A-Pagination-Solution-using-IEnumerable-T http://www.codeproject.com/search.aspx?q=Pagination+&doctypeid=1%3b2%3b3%3b13%3b14
winform 分页控件,源码下载
http://files.cnblogs.com/nosnowwolf/Pager.rar 控件下载以前都是从事B/S开发,由于公司有个比较大的C/S项目,在使用DATAGRIDVIEW的时候,显示数据量比较大,所以才用分页模式,也不知道这样是否正确。
想找个C/S下面的分页控件,都没有什么好的,就自己跟B/S下的分页控件,修改成WINFORM下面的。
首先创建一个用户控件名称为pager,在控件中拖入bindingNavigator和bindingSource,修改bindingNavigator,加入必要的一些控件。
效果如下:
namespace WindowsApp.MyControl ALTER PROCEDURE SP_Pagination ( @Tables varchar(2000), @PrimaryKey varchar(500), @Sort varchar(500) = NULL, @CurrentPage int = 1, @PageSize int = 10, @Fields varchar(2000) = '*', @Filter varchar(1000) = NULL, @Group varchar(1000) = NULL ) AS IF @Sort IS NULL OR @Sort = '' SET @Sort = @PrimaryKey DECLARE @SortTable varchar(1000) DECLARE @SortName varchar(1000) DECLARE @strSortColumn varchar(1000) DECLARE @operator char(2) DECLARE @type varchar(1000) DECLARE @prec int IF CHARINDEX('DESC',@Sort)>0 BEGIN SET @strSortColumn = REPLACE(@Sort, 'DESC', '') SET @operator = '<=' END ELSE BEGIN IF CHARINDEX('ASC', @Sort) = 0 SET @strSortColumn = REPLACE(@Sort, 'ASC', '') SET @operator = '>=' END IF CHARINDEX('.', @strSortColumn) > 0 BEGIN SET @SortTable = SUBSTRING(@strSortColumn, 0, CHARINDEX('.',@strSortColumn)) SET @SortName = SUBSTRING(@strSortColumn, CHARINDEX('.',@strSortColumn) + 1, LEN(@strSortColumn)) END ELSE BEGIN SET @SortTable = @Tables SET @SortName = @strSortColumn END SELECT @type=t.name, @prec=c.prec FROM sysobjects o JOIN syscolumns c on o.id=c.id JOIN systypes t on c.xusertype=t.xusertype WHERE o.name = @SortTable AND c.name = @SortName IF CHARINDEX('char', @type) > 0 SET @type = @type + '(' + CAST(@prec AS varchar) + ')' DECLARE @strPageSize varchar(500) DECLARE @strStartRow varchar(500) DECLARE @strFilter varchar(1000) DECLARE @strSimpleFilter varchar(1000) DECLARE @strGroup varchar(1000) IF @CurrentPage < 1 SET @CurrentPage = 1 SET @strPageSize = CAST(@PageSize AS varchar(500)) SET @strStartRow = CAST(((@CurrentPage - 1)*@PageSize + 1) AS varchar(500)) IF @Filter IS NOT NULL AND @Filter != '' BEGIN SET @strFilter = ' WHERE ' + @Filter + ' ' SET @strSimpleFilter = ' AND ' + @Filter + ' ' END ELSE BEGIN SET @strSimpleFilter = '' SET @strFilter = '' END IF @Group IS NOT NULL AND @Group != '' SET @strGroup = ' GROUP BY ' + @Group + ' ' ELSE SET @strGroup = '' EXEC( ' DECLARE @SortColumn ' + @type + ' SET ROWCOUNT ' + @strStartRow + ' SELECT @SortColumn=' + @strSortColumn + ' FROM ' + @Tables + @strFilter + ' ' + @strGroup + ' ORDER BY ' + @Sort + ' SET ROWCOUNT ' + @strPageSize + ' SELECT ' + @Fields + ' FROM ' + @Tables + ' WHERE ' + @strSortColumn + @operator + ' @SortColumn ' + @strSimpleFilter + ' ' + @strGroup + ' ORDER BY ' + @Sort + ' ' )
public class PageData private void ReceiveOrderJLForm_Load(object sender, EventArgs e) private int dgvBind() private int pager1_EventPaging(WindowsApp.MyControl.EventPagingArg e) return dgvBind(); }
效果如下
http://files.cnblogs.com/nosnowwolf/Pager.rar 控件下载
相关文章推荐
- json字符串与json对象的相互转换
- CSS颜色属性,边框属性
- 同志们千万细心
- 回文字符串
- 如何去掉按钮的立体效果
- Activity的生命周期详述
- hdu 1518 poj 2362
- MySQL修改列名称或列的数据类型
- 深入理解Java虚拟机总结-思维导图
- 回文字符串
- 自定义控件 横向滑动控件 总结
- 推箱子 Sokoban(华中农业比赛)
- rac环境下vip/public/private IP的区别
- 初识博弈【一】(挑战程序)(poj2348,poj2484)
- bzoj1221 [HNOI2001]软件开发 & bzoj3280 小R的烦恼
- 推箱子 Sokoban(华中农业比赛)
- redis数据库
- 数据库去重的一种做法(借助临时表)
- Windows Azure Virtual Machine (32) 如何在Windows操作系统配置SFTP
- Hibernate快速入门