使用Silverlight Toolkit的数据分页控件---DataPager-阿里云开发者社区

开发者社区> 技术小阿哥> 正文

使用Silverlight Toolkit的数据分页控件---DataPager

简介:
+关注继续查看
 在Silverlight Toolkit 3.0中提供了强大灵活的数据分页控件:DataPager。并且其还有多种显示样式 (DisplayMode) 供使用。终于可以不用再自己费神巴力去实现分页功能了,下面是其演示效果:

            

     接着介绍一下其使用方法。
   首先,我们要新建一个Silverlight应用,并添加对下面DLL的引用:
     System.Windows.Data(其提供了PagedCollectionView类用于实现分页绑定)

System.Windows.Controls.Data(分页器控件DataPager所在DLL)
  
XAML文件头部名空间声明:
xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"
  
然后我们要在当前XAML中放置一个DataGrid用于显示列表数据,声明如下:
<data:DataGrid x:Name="MyDataGrid" Grid.Column="0" Grid.Row="0" ItemsSource="{Binding}" />
  
为了演示不同显示样式(DisplayMode)的效果,下面根据其样式分别加以声明:
<data:DataPager x:Name ="FirstLastNumeric" Grid.Row="2" DisplayMode="FirstLastNumeric" Margin="0,0,0,4" 
                HorizontalAlignment
="Left" Source="{Binding}" NumericButtonCount="3" AutoEllipsis="True"/>

<data:DataPager x:Name ="FirstLastPreviousNext" Grid.Column="0" Grid.Row="3" DisplayMode="FirstLastPreviousNext" 
                Margin
="0,0,0,4" HorizontalAlignment="Left" Source="{Binding}" NumericButtonCount="3" AutoEllipsis="True"/>

<data:DataPager x:Name ="FirstLastPreviousNextNumeric" Grid.Column="0" Grid.Row="4" DisplayMode="FirstLastPreviousNextNumeric" 
                Margin
="0,0,0,4" HorizontalAlignment="Left" Source="{Binding}" NumericButtonCount="4" AutoEllipsis="True"/>

<data:DataPager x:Name ="Numeric" Grid.Column="0" Grid.Row="5" DisplayMode="Numeric" HorizontalAlignment="Left" 
                Margin
="0,0,0,4"  Source="{Binding}" NumericButtonCount="6" AutoEllipsis="False"/>

<data:DataPager x:Name ="PreviousNext" Grid.Column="0" Grid.Row="6" DisplayMode="PreviousNext" Margin="0,0,0,4" 
                HorizontalAlignment
="Left" Source="{Binding}" NumericButtonCount="3" AutoEllipsis="False" />

<data:DataPager x:Name ="PreviousNextNumeric" Grid.Column="0" Grid.Row="7" DisplayMode="PreviousNextNumeric" Margin="0,0,0,4" 
                HorizontalAlignment
="Left" Source="{Binding}" NumericButtonCount="4" AutoEllipsis="False" />
    
      好了,为了便于演示,我“硬编码”了一个数据对象集合如下:
public List<EmployeeInfo> GetEmployeeList()
 {
     List
<EmployeeInfo> employeeList = new List<EmployeeInfo>();
     employeeList.Add(
new EmployeeInfo { EmployeeID = 1, EmployeeName = "大林", Salary = 1000, City = "合肥" });
     employeeList.Add(
new EmployeeInfo { EmployeeID = 2, EmployeeName = "小林", Salary = 1000, City = "合肥" });
     employeeList.Add(
new EmployeeInfo { EmployeeID = 3, EmployeeName = "张三", Salary = 1000, City = "合肥" });
     employeeList.Add(
new EmployeeInfo { EmployeeID = 4, EmployeeName = "李四", Salary = 1500, City = "天津" });
     employeeList.Add(
new EmployeeInfo { EmployeeID = 5, EmployeeName = "王五", Salary = 2000, City = "上海" });
     employeeList.Add(
new EmployeeInfo { EmployeeID = 6, EmployeeName = "赵六", Salary = -800, City = "北京" });
     employeeList.Add(
new EmployeeInfo { EmployeeID = 7, EmployeeName = "尤七", Salary = 2100, City = "武汉" });
     employeeList.Add(
new EmployeeInfo { EmployeeID = 8, EmployeeName = "马八", Salary = 2300, City = "海口" });
     employeeList.Add(
new EmployeeInfo { EmployeeID = 9, EmployeeName = "许九", Salary = 2300, City = "海口" });
     employeeList.Add(
new EmployeeInfo { EmployeeID = 10, EmployeeName = "代十", Salary = 2300, City = "海口" });
     
return employeeList;
 }

 
public class EmployeeInfo
 {
     
public int EmployeeID { setget; }
     
public string EmployeeName { setget; }
     
public int Salary { setget; }
     
public int[] Cost { getset; }
     
public string City { setget; }
 }
             
       接下来就是如何实现分页,以及相关控件的数据绑定了,代码位于MyDataPager.xaml.cs(详见注释):   
using System.Windows.Data;


public MyDataPager()
{
    InitializeComponent();
    PagedCollectionView pcv 
= new PagedCollectionView(GetEmployeeList());
    pcv.PageSize 
= 3;//一页显示三条记录

    
//列表控件数据源绑定
    MyDataGrid.DataContext = pcv; 
    MyListBox.DataContext 
= pcv;

    
//分页控件数据源绑定
    FirstLastNumeric.DataContext = pcv;
    FirstLastPreviousNext.DataContext 
= pcv;
    FirstLastPreviousNextNumeric.DataContext 
= pcv;
    Numeric.DataContext 
= pcv;
    PreviousNext.DataContext 
= pcv;
    PreviousNextNumeric.DataContext 
= pcv;
}
    
      是不是很好用,呵呵。当然该控件还提供了NumericButtonCount属性用于控制页码的数量,这在上面的XAML控件声明时已使用,大家可以修改测试一下效果。
     好的,今天的内容就先到这里了。


本文转自 daizhenjun 51CTO博客,原文链接:http://blog.51cto.com/daizhj/188781,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SpringBoot 整合JPA | PageHelper 的分页最简实现
JPA又自己的Pageable来帮助我们实现分页,Mybatis有PageHelper帮我们实现分页,下面直接贴代码。 1. 用JPA实现分页 1.1 pom添加依赖 org.springframework.boot spring-boot-starter-data-jpa 其实就是JPA的依赖。
2751 0
ML之FE:基于load_mock_customer数据集(模拟客户)利用featuretools工具实现自动特征生成/特征衍生
ML之FE:基于load_mock_customer数据集(模拟客户)利用featuretools工具实现自动特征生成/特征衍生
38 0
Python之pandas:数据类型变换之object、category、bool、int32、int64、float64以及数据类型标准化之详细攻略
Python之pandas:数据类型变换之object、category、bool、int32、int64、float64以及数据类型标准化之详细攻略
42 0
将jQuery Pagination分页插件用于不使用AJAX加载数据的页面
将jQuery Pagination分页插件用于不使用AJAX加载数据的页面,项目使用SpringMVC,使用Freemarker绑定数据,但分页显示样式不想自己处理,所以使用jQuery Pagination分页插件。
728 0
EMR Spark Relational Cache 利用数据预组织加速查询
本文介绍了EMR Spark的Relational Cache如何从数据量较大的Cube中快速提取出所需数据加速查询的原理。通过列式存储、文件索引、Z-Order等技术,我们可以快速过滤数据,大大减少实际发生的IO数据量,避免IO瓶颈的出现,从而优化整体查询性能。
914 0
SQL2005/2008手工注入之批量爆数据for xml path
http://www.cqsec.com/read/SQL2005_2008_Injection_By_Hand_For_XML_Path ...
469 0
手动绑定SQLDataSource到GridView后分页的问题(转)
由于GridView的数据源是后台CS文件中代码绑定的。所以程序运行时,点击分页数后没有反应。解决办法如下: using System;using System.Data;using System.Configuration;using System.
681 0
Struts2获取easyUI datagrid 分页参数page和rows
Struts2获取easyUI datagrid 分页参数page和rows   用pageHelper分页时,只要是能够获取前台传来的两个参数page和rows基本就完成了很大一部分。 获取方法:定义两个变量page和rows,设置对应的getter,setter方法,在方法中直接获取就能打得。
1171 0
13694
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《Nacos架构&原理》
立即下载
《看见新力量:二》电子书
立即下载
云上自动化运维(CloudOps)白皮书
立即下载