Asp.net提供了三个功能强大的列表控件:DataGrid、DataList和Repeater控件,但其中只有DataGrid控件提供分页功能。相对DataGrid,DataList和Repeater控件具有更高的样式自定义性,所以很多时候我们喜欢使用DataList或Repeater控件来显示数据。

实现DataList或Repeater控件的分页显示有几种方法:
 1、写一个方法或存储过程,根据传入的页数返回需要显示的数据表(DataTable)
 2、使用PagedDataSource类

本篇文章主要说怎么使用PagedDataSource类实现DataList和Repeater控件的分页显示。DataGrid控件内部也使用了PagedDataSource类,PagedDataSource 类封装 DataGrid 控件的属性,这些属性使 DataGrid 可以执行分页。

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

这些属性是否和DataGrid的属性很相似?没错,DataGrid控件就是使用PagedDataSource类来实现数据分页显示的 。下面举个使用PagedDataSource类实现DataList和Repeater控件的分页显示的例子:

 public void Page_Load(Object src,EventArgs e) 
 {
 OleDbConnection objConn=new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\test.mdb");
 OleDbDataAdapter objCommand=new OleDbDataAdapter("select * from Users",objConn);
 DataSet ds=new DataSet();
 objCommand.Fill(ds);

 //对PagedDataSource 对象的相关属性赋值
 PagedDataSource objPds = new PagedDataSource();
 objPds.DataSource = ds.Tables[0].DefaultView;
 objPds.AllowPaging = true;
 objPds.PageSize = 5;
 int CurPage;

 //当前页面从Page查询参数获取
 if (Request.QueryString["Page"] != null)
  CurPage=Convert.ToInt32(Request.QueryString["Page"]);
 else
  CurPage=1;

 objPds.CurrentPageIndex = CurPage-1; 
 lblCurrentPage.Text = "Page: " + CurPage.ToString();

 if (!objPds.IsFirstPage)
  lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1);

 if (!objPds.IsLastPage)
  lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" + Convert.ToString(CurPage+1);

 //把PagedDataSource 对象赋给Repeater控件
 Repeater1.DataSource=objPds;
 Repeater1.DataBind();
 }

这样就可以很简单的实现DataList和Repeater控件的分页显示。但这样做有个缺点,就是每次都要把所有页的数据Select出来,DataGrid也是这样,这样会降低一点效率(大多时候体会不出来差别);如果使用第一种方法就可以只Select出当前页的数据(实现方法请查看有关文章)

用上面的方法是最方便的实现DataList分页的。只不过,效率看似有点底啊。。那个AspNetPage太难用了。不知道有没有更好的方法了,即简单又高效一点的。。

转:http://blog.csdn.net/fzzf/archive/2005/11/28/538603.aspx

转载于:https://www.cnblogs.com/Dragon-China/archive/2007/09/10/888635.html

DataList分页技术-- PagedDataSource类实现DataList和Repeater的分页效果相关推荐

  1. 使用PagedDataSource类实现DataList和Repeater控件的分页显示

    Asp.net提供了三个功能强大的列表控件:DataGrid.DataList和Repeater控件,但其中只有DataGrid控件提供分页功能.相对DataGrid,DataList和Repeate ...

  2. 使用PagedDataSource类实现分页

    Asp.net提供了三个功能强大的列表控件:GridView.DataList和Repeater控件,相对GridView,DataList和Repeater控件具有更高的样式自定义性,很多时候我们喜 ...

  3. 新闻发布系统之浅谈分页技术

    我们今天生活在一个大数据时代,数据量成指数增长.在我们的网页检索数据是往往会检索到太多的数据,但是我们的网页大小又是有限的不能一次性把所有的数据都显示出来,为此分页技术的诞生变得尤为的重要.我在开发一 ...

  4. 数据库分页技术的实现及高效率分页技术方案

    当浏览的数据量较大时,分页显示是个非常实用的方法.本文主要介绍了不同数据库中分页技术的实现以及能够提高效率的分页技术的三个方案,希望能够对您有所帮助. 数据库分页技术能够帮助浏览者更好的查看信息,不同 ...

  5. Asp.net:DataList分页技术

    转:http://blog.sina.com.cn/s/blog_4a87caab010006kr.html Asp.net:DataList分页技术(1) ·                     ...

  6. Scott Mitchell 的ASP.NET 2.0数据教程之四十四::DataList和Repeater数据分页

    原文 | 下载本教程中的编码例子 | 下载本教程的PDF版 导言 分页和排序是显示数据时经常用到的功能.比如,在一个在线书店里搜索关于ASP.NET 的书的时候,可能结果会是成百上千,而每页只列出十条 ...

  7. JAVA List集合转Page(分页对象) java 分页 PageModel 测试类TestPagerModel

    http://www.blogjava.net/jzone/archive/2015/06/05/308842.html?opt=admin /**  * @version 1.0  * @autho ...

  8. Java分页技术的实现(一)

    (一)创建一个web项目 (二)编写Java类 1.建立一个com.imooc.page包 package com.imooc.page;public class Constant {/*** 男性* ...

  9. java后台分页插件怎么写_Java分页技术(从后台传json到前台解析显示)

    0 这是一篇我在初学习过程中,遇到的动态数据分页显示的问题,前台采用Ajax传给后台,后台在访问数据库取出分页数据再转换为json格式传递给前台,前台再解析显示到表格中.在此写出我在做的过程中遇到的问 ...

最新文章

  1. 选择python培训机构的关键考核五大因素,让你永不吃亏!
  2. 剑指offer(19)顺时针打印矩阵
  3. Android中的AsyncTask异步任务的简单实例
  4. java面试题——java基础(四),java初级面试笔试题
  5. Vue应用框架整合与实战--Vue技术生态圈篇
  6. poj3258二分法
  7. AD的命名规则 AD常用产品型号命名规则
  8. python日志记录_Python日志记录
  9. 我来到这世上,却不曾歌唱
  10. 黑盒(功能)测试基本方法
  11. vmware虚拟机卸载教程
  12. 工商银行网银支付问题 有网站想要安装以下加载项 来自Industrial and Commercial Bank of China Limited‘ 第三方支付机构上送网联跳转报文请求参数错误
  13. python复数类型的虚部通过_Python 复数数据类型详解(complex)[学习 Python 必备基础知识][看此一篇就够了...
  14. day2 数据分析思维课
  15. 以太坊Swarm Bzz节点云解决方案
  16. Mysql中索引相关问题
  17. 年薪30W+的IC验证工程师究竟是做什么的?一文为你讲解清楚
  18. 创业如创作,保持热爱
  19. YOLOV5训练自己的数据集(踩坑经验之谈)
  20. yolov3-tiny 训练。以及yolov3 画图。

热门文章

  1. React开发(235):react可以这样返回dom
  2. [html]说说页面中字体渲染规则是怎样的?会有哪些因素影响字体的渲染?
  3. [js] innerHTML有什么缺点?
  4. 歌谣--回顾2020 展望2021
  5. 前端学习(2444):分支的使用
  6. 前端学习(1741):前端调试值之元素状态改变的监听方法
  7. 前端学习(1550):$scope和调试工具
  8. 前端学习(1183):指令v-cloak
  9. 第九十四期:GitHub 发布 2019 年年度报告
  10. html:(8):span标签和q标签