大家好,欢迎来到IT知识分享网。
目录
说明:代码已封装成库,有需要者私我邮箱 bohekeji@vip.qq.com
起因
开使用DataGrid数据表过程中,不管是视觉感受还是用户体验上,再或者是大批量数据使用场景中,大量的单页数据用户体验很不好,于是想开发一个可以分页的控件。
思路
刚开始在网上各种搜DEMO,希望从中获取些有用的东西,好在还是从中了解到了大概的实现思路。
需求
最基础的就是分页功能咯。但是,虽然作为程序猿,我对美观一直坚持不懈的追求,所以不仅要实现,还有美观。
部分代码
/// <summary>
/// 显示每页记录数字符串列表
/// 例:10,20,30
/// </summary>
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<int>();
}
if (dp.PageSizeItemsSource != null) {
List<string> strs = e.NewValue.ToString().Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
dp.PageSizeItemsSource.Clear();
strs.ForEach(c => {
dp.PageSizeItemsSource.Add(Convert.ToInt32(c));
});
}
}));
protected IList<int> PageSizeItemsSource {
get { return (IList<int>)GetValue(PageSizeItemsSourceProperty); }
set { SetValue(PageSizeItemsSourceProperty, value); }
}
/// <summary>
/// 显示每页记录数集合
/// </summary>
protected static readonly DependencyProperty PageSizeItemsSourceProperty =
DependencyProperty.Register("PageSizeItemsSource", typeof(IList<int>), typeof(PagingDataGrid), new UIPropertyMetadata(new List<int> { 5, 10, 20, 30, 50 }));
效果图
分页控件外观
总结
总体实现实用性和适用性算是达标,但是原本还想做个导入导出功能,导出支持当前页和所有页,但是个人项目比较紧张,实在忙不过来,等候续吧。
DEMO下载
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/21412.html