DataList控件之手工分页

来源:互联网 发布:地震讯息 软件 编辑:程序博客网 时间:2024/05/21 17:50

      前两天在给大二的同学讲DataList控件的时候,遇到有关如何手写分页的问题。总所周知,Repeater自定义性非常高,但是没有内置的样式或者模板可供程序员选择,GridView控件在DataList控件上做了优化和改进,功能很强大,增加了诸如编辑、分页、排序等功能,但其自定义程度远远不够,而DataList则兼而有之,在样式定义方面显现的尤为突出。这里我就说一下我的分页方法吧。

      DataList分页常用的有两种办法:

      1、使用第三方控件(如:AspNetPager,这是我常用的一个);

      2、自己写代码。

      至于用第三方控件就不说了,还是言归正传,说说我的实现办法。

      DataList分页方法的核心原理是利用PagedDataSource对象,PagedDataSource类封装了DataGrid 控件的属性,这些属性使 DataGrid 可以执行分页,下面是PagedDataSource的公共属性:

      AllowCustomPaging 获取或设置指示是否启用自定义分页的值。
      AllowPaging 获取或设置指示是否启用分页的值。
      Count 获取要从数据源使用的项数。
      CurrentPageIndex 获取或设置当前页的索引。
      DataSource 获取或设置数据源。
      DataSourceCount 获取数据源中的项数。
      FirstIndexInPage 获取页中的第一个索引。
      IsCustomPagingEnabled 获取一个值,该值指示是否启用自定义分页。
      IsFirstPage 获取一个值,该值指示当前页是否是首页。
      IsLastPage 获取一个值,该值指示当前页是否是最后一页。
      IsPagingEnabled 获取一个值,该值指示是否启用分页。
      IsReadOnly 获取一个值,该值指示数据源是否是只读的。
      IsSynchronized 获取一个值,该值指示是否同步对数据源的访问(线程安全)。
      PageCount 获取显示数据源中的所有项所需要的总页数。
      PageSize 获取或设置要在单页上显示的项数。
      VirtualCount 获取或设置在使用自定义分页时数据源中的实际项数。

      好了,基于上述的铺垫,接下来我们要开始啦。

      首先,我们看一下页面情况

       页面上其他部分都已被删去,只留下项模板和用于分页显示的两个Label标签和四个LinkButton按钮。

       接下来,设置页面的数据源,由于DataList控件是基于PagerDataSource的,所以这里设置DataList控件的数据源和以往不同。

     

        以上是实现DataList控件分页的主要代码,另外,需要对四个LinkButton按钮设置,以使当点击【首页】、【上一页】、【尾页】和【下一页】按钮时都有效。

       

        至此,DataList控件的分页就完成了。

原创粉丝点击