使用Telerik的DataPager进行服务器端分页
说是服务器端,因我是WPF程序,也就是客户端了。主要是DataPager默认是一次获取全部数据,然后只显示一部分数据,如果数据量比较大,性能会有一定的影响。
我的主要做法是:根据查询得到的数据总量,生成一个List<int> 的列表复制给其Source属性。
主要代码:
1。前台代码
<StackPanel><telerik:RadGridView ItemsSource="{Binding EmailList}" AutoGenerateColumns="False" CanUserInsertRows="False" CanUserDeleteRows="False" IsReadOnly="True" EnableColumnVirtualization="False" EnableRowVirtualization="False" IsFilteringAllowed="False" ShowGroupPanel="False" CanUserReorderColumns="False" CanUserSortColumns="False"><telerik:RadGridView.Columns><telerik:GridViewDataColumn Header="账号" DataMemberBinding="{Binding UserName}" Width="100" TextAlignment="Left" HeaderTextAlignment="Center"/><telerik:GridViewDataColumn Header="密码" DataMemberBinding="{Binding Password}" Width="100" TextAlignment="Left" HeaderTextAlignment="Center"/></telerik:RadGridView.Columns></telerik:RadGridView><telerik:RadDataPager x:Name="mailPager" Source="{Binding IndexList}" PageIndexChanged="mailPager_PageIndexChanged" PageSize="20" DisplayMode="FirstLastPreviousNext, Text"/></StackPanel>
2。后台代码
public NetsMail(){InitializeComponent();model = new NetsMailViewModel();this.DataContext = model;}private void mailPager_PageIndexChanged(object sender, Telerik.Windows.Controls.PageIndexChangedEventArgs e){if (model != null){model.PageIndex = e.NewPageIndex;}}
这里用到了DataGrid的PageIndexChanged事件
PageIndexChanged="mailPager_PageIndexChanged"
主要的原因是我在使用PageIndex="{Binding PageIndex}"时,数据一直没有更显到ViewModel当中,不知道什么原因,只有采用这种方法,破坏了MVVM完好性。
3。ViewModel
public class NetsMailViewModel : NotificationObject{[Import(typeof(INetsDesktopContract))]public INetsDesktopContract NetsService { get; set; }public NetsMailViewModel(){NetsService = App.Container.GetExportedValue<INetsDesktopContract>();int count;EmailList = NetsService.GetEmailAccounts(0, 20, out count);IndexList = Enumerable.Range(0, count).ToList<int>();}private List<Email> emailList;public List<Email> EmailList{get { return emailList; }set { emailList = value; this.RaisePropertyChanged("EmailList"); }}private List<int> indexList;public List<int> IndexList{get { return indexList; }set { indexList = value;}}private int pageIndex;public int PageIndex{get { return pageIndex; }set {int count;pageIndex = value;EmailList = NetsService.GetEmailAccounts(value, 20, out count);}} }
转载于:https://www.cnblogs.com/Leman/p/3404450.html
使用Telerik的DataPager进行服务器端分页相关推荐
- 使用Silverlight3中的DataPager实现服务器端分页
代振军同学的blog中描述了使用DataPager实现客户端分页: http://www.cnblogs.com/daizhj/archive/2009/08/07/1529331.html 一般说来 ...
- datatables.js 简单使用--多选框和服务器端分页
说明:datatables是一款jQuery表格插件.感觉EasyUI的datagrid更易用 内容:多选框和服务器端分页 缘由:写这篇博客的原因是datatables的文档写的不怎么样,找东西很麻烦 ...
- java服务器端分页_使用数据表的服务器端分页
服务器每页返回15条记录,总记录超过2000条 . 我想显示前15条记录,然后每次单击"下一步"按钮,显示剩余的所有记录(每页15条记录) . 为此,我们做服务器端分页或客户端?? ...
- 使用ASP.NET Core和Angular 8的服务器端分页
目录 介绍 如何工作? 先决条件 使用代码 后端 步骤1 步骤2 步骤3 Web API 步骤1 步骤2 步骤3 步骤4 步骤5 步骤6 步骤7 步骤8 步骤9 完整的分页控制器代码 前端 步骤1 步 ...
- bootstrap table 服务器端分页例子
1,前台引入所需的js 可以从官网上下载 function getTab(){ var url = contextPath+'/fundRetreatVoucher/fundBatchRetreatV ...
- jquery datatables-1.8.2服务器端分页不支持IE6,IE7 UBG修改。
jquery datatable服务器端分页不支持IE6,IE7: 原因是在IE6,IE7,jquery datatable通过ajax 无法发送get类型请求: 但可以发送post请求,只要将插件中 ...
- datatables服务器端分页
Datatables入坑指南01: 今天尝试将datatables从客户端分页转化为服务器端分页,根据官网要求我返回了相应的相应参数,具体如下: 但是客户端总是显示不了相应的json数据,最后终于发现 ...
- Layui表格异步请求服务器端分页数据
文章仅作为个人备忘,未精细整理 方法及配置参考处layui网站及相关网络资源,实现了通过Layui表格快速实现请求服务器端分页数据. 前端代码 <!DOCTYPE html> <ht ...
- 关于Jquery EasyUI中的DataGrid服务器端分页随记
一.关于DataGrid的分页和排序参数 对于分页参数不需要用户指定,程序在AJAX请求的时候会带上分页和排序需要的参数 每页显示条数:rows 当前页:page 排序字段:sort [multiS ...
最新文章
- mysql无法建立连接_【MySql】mysql无法建立连接或建立连接失败原因分析
- SpringBoot+El-upload实现上传文件到通用上传接口并返回文件全路径(若依前后端分离版源码分析)
- android 自定义背景园,Android 自定义ProgressBar 进度条颜色和背景颜色
- h3c s7506e 配置手册_H3C交换机s5500Web登录配置
- iOS通用链接(Universal Links)突然点击无效的解决方案
- 详解ISA2006的三种客户端模式
- jsjquery避免报错的方法
- 传智播客 C/C++学习笔记 一级指针易错模型分析_重点
- webview android%3e28,Android WebView 文明踩坑之路
- 关于VGA的分辨率。。。。图解
- linux bzip指定名称,bzip2命令_Linux bzip2 命令用法详解:将文件压缩成bz2格式
- 差分管电路图_差分放大器的非线性应用
- html与css知识点集合
- h5页面不随微信字体大小改变
- Codecademy-中文JavaScript系列教程-Function
- PHP实现手机号或身份证号中间几位变*
- Android 练习项目 ——简单记账软件的实现
- java中测代码段运行时间及内存的方法
- 高质量的外链怎么去挖掘?
- 详解train_test_split()函数(官方文档有点不说人话)