您的位置:首页 > 其它

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

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 控件下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: