今天研究了以下Asp.Net 可定制分页,用起来很爽,下面给大家介绍下。
借助 Asp.Net 提供的数据绑定控件,我们无需太多的代码,甚至不需要代码,只要在 VS2005 中拖拽几下控件,进行一些属性的设置,便可以实现在Asp时代需要做大量工作才能够实现的分页功能。但在实际的应用中,尤其是在Web站点程序中,我们经常需要更加丰富的用户界面,而类似DataList或者 GridView 这样的数据控件往往不能或者很难满足我们的要求。此时,我们常常求助于 Repeater 控件,这样我们依旧会面临分页及其显示的问题。
本文不是讲述如何进行数据库分页,而将注意力集中在如何实现可定制地 获取页码、获取路径、显示分页链接,并且通过构建一个用户控件来实现代码重用上。如果你是一个初学者,你可以借鉴一下我的实现方式;如果你已经是一位高手,不妨提出设计的不足和改进意见。
本文是以接口的实现方式作为讲述,这是因为我写这篇文章的时候使用的是接口,但我后来又提供了一种更好的使用继承的方式来实现,我提供了两个版本的代码下载,你可以相互对比着参考。
控件组成
为了能迅速提起大家的兴趣,可以先点击这个链接,看看实际的效果:
http://www.tracefact.net/Demo/Pager/Default.aspx
IUrlManager 接口
想一想如果你在设计一个可重用的分页用户控件,你面临的问题是什么?每个人获取页码的方式都不同,例如,你的站点URL可能是类似这样的 Default.aspx?page=1 ,而另外一个站点的URL 是这样的 Default.aspx?p=1。更有一些可能根本不使用 QueryString 来获取页码,它们的URL可能是这样的 Default-1.aspx、Default-2.aspx 等等。获取页码的方式不同,根据页码产生链接地址的方法自然也不相同。按照封装变化的思想,我们应该将这变化的部分取出来,建一个 IUrlManager 接口:
public interface IUrlManager { int CurrentPageIndex{ get; } // 当前页码 string GetPageUrl(int pageIndex); // 根据 页码 获取页面路径 }
而实际上,当前页码不应该大于总页数,所以获取当前页CurrentPageIndex属性需要能得知 总页数,而总页数通常是由 记录数 和 分页大小计算得出,这个接口实际上应该是这样:
public interface IUrlManager { int CurrentPageIndex{ get; } // 当前页码 string GetPageUrl(int pageIndex); // 根据 页码 获取页面路径 int PageCount { get; } // 总页数 int RecordCount { get; } // 记录总数 int PageSize { get; } // 分页大小 }
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索控件
, 接口
, default
, 页数
, asp.net获取当前url
, 方式
页码
,以便于您获取更多的相关知识。