作者:觅树知音 | 来源:互联网 | 2023-09-16 17:59
目录
起因
思路
需求
部分代码
效果图
分页控件外观
总结
DEMO下载
说明:代码已封装成库,有需要者私我邮箱 bohekeji@vip.qq.com
起因
开使用DataGrid数据表过程中,不管是视觉感受还是用户体验上,再或者是大批量数据使用场景中,大量的单页数据用户体验很不好,于是想开发一个可以分页的控件。
思路
刚开始在网上各种搜DEMO,希望从中获取些有用的东西,好在还是从中了解到了大概的实现思路。
需求
最基础的就是分页功能咯。但是,虽然作为程序猿,我对美观一直坚持不懈的追求,所以不仅要实现,还有美观。
部分代码
/// /// 显示每页记录数字符串列表/// 例:10,20,30/// public static readonly DependencyProperty PageSizeListProperty =DependencyProperty.Register("PageSizeList", typeof(string), typeof(PagingDataGrid), new UIPropertyMetadata(null, (s, e) => {PagingDataGrid dp = s as PagingDataGrid;if (dp.PageSizeItemsSource == null) {dp.PageSizeItemsSource = new List();}if (dp.PageSizeItemsSource != null) {List strs = e.NewValue.ToString().Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();dp.PageSizeItemsSource.Clear();strs.ForEach(c => {dp.PageSizeItemsSource.Add(Convert.ToInt32(c));});}}));protected IList PageSizeItemsSource {get { return (IList)GetValue(PageSizeItemsSourceProperty); }set { SetValue(PageSizeItemsSourceProperty, value); }}/// /// 显示每页记录数集合/// protected static readonly DependencyProperty PageSizeItemsSourceProperty =DependencyProperty.Register("PageSizeItemsSource", typeof(IList), typeof(PagingDataGrid), new UIPropertyMetadata(new List { 5, 10, 20, 30, 50 }));
效果图
分页控件外观
总结
总体实现实用性和适用性算是达标,但是原本还想做个导入导出功能,导出支持当前页和所有页,但是个人项目比较紧张,实在忙不过来,等候续吧。
DEMO下载
PagingDataGrid【MintYouth】.zip-C#文档类资源-CSDN下载博客原文:https://blog.csdn.net/weixin_38351681/article更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/weixin_38351681/50021380