说是服务器端,因我是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进行服务器端分页相关推荐

  1. 使用Silverlight3中的DataPager实现服务器端分页

    代振军同学的blog中描述了使用DataPager实现客户端分页: http://www.cnblogs.com/daizhj/archive/2009/08/07/1529331.html 一般说来 ...

  2. datatables.js 简单使用--多选框和服务器端分页

    说明:datatables是一款jQuery表格插件.感觉EasyUI的datagrid更易用 内容:多选框和服务器端分页 缘由:写这篇博客的原因是datatables的文档写的不怎么样,找东西很麻烦 ...

  3. java服务器端分页_使用数据表的服务器端分页

    服务器每页返回15条记录,总记录超过2000条 . 我想显示前15条记录,然后每次单击"下一步"按钮,显示剩余的所有记录(每页15条记录) . 为此,我们做服务器端分页或客户端?? ...

  4. 使用ASP.NET Core和Angular 8的服务器端分页

    目录 介绍 如何工作? 先决条件 使用代码 后端 步骤1 步骤2 步骤3 Web API 步骤1 步骤2 步骤3 步骤4 步骤5 步骤6 步骤7 步骤8 步骤9 完整的分页控制器代码 前端 步骤1 步 ...

  5. bootstrap table 服务器端分页例子

    1,前台引入所需的js 可以从官网上下载 function getTab(){ var url = contextPath+'/fundRetreatVoucher/fundBatchRetreatV ...

  6. jquery datatables-1.8.2服务器端分页不支持IE6,IE7 UBG修改。

    jquery datatable服务器端分页不支持IE6,IE7: 原因是在IE6,IE7,jquery datatable通过ajax 无法发送get类型请求: 但可以发送post请求,只要将插件中 ...

  7. datatables服务器端分页

    Datatables入坑指南01: 今天尝试将datatables从客户端分页转化为服务器端分页,根据官网要求我返回了相应的相应参数,具体如下: 但是客户端总是显示不了相应的json数据,最后终于发现 ...

  8. Layui表格异步请求服务器端分页数据

    文章仅作为个人备忘,未精细整理 方法及配置参考处layui网站及相关网络资源,实现了通过Layui表格快速实现请求服务器端分页数据. 前端代码 <!DOCTYPE html> <ht ...

  9. 关于Jquery EasyUI中的DataGrid服务器端分页随记

    一.关于DataGrid的分页和排序参数 对于分页参数不需要用户指定,程序在AJAX请求的时候会带上分页和排序需要的参数 每页显示条数:rows 当前页:page 排序字段:sort  [multiS ...

最新文章

  1. mysql无法建立连接_【MySql】mysql无法建立连接或建立连接失败原因分析
  2. SpringBoot+El-upload实现上传文件到通用上传接口并返回文件全路径(若依前后端分离版源码分析)
  3. android 自定义背景园,Android 自定义ProgressBar 进度条颜色和背景颜色
  4. h3c s7506e 配置手册_H3C交换机s5500Web登录配置
  5. iOS通用链接(Universal Links)突然点击无效的解决方案
  6. 详解ISA2006的三种客户端模式
  7. jsjquery避免报错的方法
  8. 传智播客 C/C++学习笔记 一级指针易错模型分析_重点
  9. webview android%3e28,Android WebView 文明踩坑之路
  10. 关于VGA的分辨率。。。。图解
  11. linux bzip指定名称,bzip2命令_Linux bzip2 命令用法详解:将文件压缩成bz2格式
  12. 差分管电路图_差分放大器的非线性应用
  13. html与css知识点集合
  14. h5页面不随微信字体大小改变
  15. Codecademy-中文JavaScript系列教程-Function
  16. PHP实现手机号或身份证号中间几位变*
  17. Android 练习项目 ——简单记账软件的实现
  18. java中测代码段运行时间及内存的方法
  19. 高质量的外链怎么去挖掘?
  20. 详解train_test_split()函数(官方文档有点不说人话)

热门文章

  1. SMO的MSDN文档
  2. meterpreter使用详解
  3. 配置http和https
  4. PHP仿百度网盘文件分享dzzoffice网盘系统源码
  5. 微博付费打赏架构:一个社交场景下准金融项目开发和实践
  6. Hibernate学习(七)
  7. linux的root用户默认密码,Linux下root初始密码设置方法
  8. 【STM32】ADC程序示例
  9. 中国芯片迎难而上,4纳米芯片量产,美媒:美国或肠子都悔青了
  10. javascript中字符串的‘单‘与“双“引号