日期:2014-05-20  浏览次数:20478 次

分享一个更好用的分页控件——QuickPager asp.net2.0 分页控件(总体介绍。这个控件都能做什么呢?up有分)
QuickPager分页控件的特点
 

 1、两种运行方式:自动运行、手动运行。前者便捷,后者灵活。
 2、多种分页方式:Postback、Postback伪URL、URL、URL重写、Ajax For服务器控件伪URL。
 3、多种分页算法:Max、颠倒Top(优化版)、Row_Number、自动适应等。可以应对多种数据库和各种需求。
 4、支持多种数据显示控件:GridView、DataList、Repeater等控件。有DataSource和DataBind()的控件都支持。
 5、不需要存储过程,但是仍然可以保证高效率!
 6、分页方式、分页算法、显示数据控件,都可以通过属性来“一键”切换。
 7、URL分页方式里支持直接提取记录集,目前支持DataTable和WebList2(一个固定的实体类)。
 8、Postback分页方式,支持直接通过URL参数(?page=3)访问指定页号(比如第3页)的记录。
 9、URL分页方式,支持自定义URL参数,直接添加即可,不用设置属性。 
 10、生成SQL的类库(QuickPagerSQL)。
 11、自动运行方式里,可以通过实现接口的方式更换其他的“数据访问类库”。
 

详细介绍和在线演示地址

运行方式——自动运行
 

  这个就好比自动洗衣机,放好衣物、洗衣粉,做好选项,然后启动洗衣机。洗衣机就会自动按照步骤来洗衣服了,我们可以忙其他的事情了。很方便和节省时间。
  QuickPager分页控件的自动运行方式也是一样,设置好属性就可以了,数据提取、数据绑定、回发事件处理,都可以不用去管。非常便捷,这个在一起也介绍过了。
  QuickPager分页控件也设置了两个事件,在控件绑定前和绑定后触发,以方便我们实现一些特殊需求。如果只是一般的分页的话,那么就不用去管这两个事件了。

在线演示:http://demo.naturefw.com/Nonline/QuickPager/PostBack/Synthesis.aspx



运行方式——手动运行
 
  自动运行方式很方便,但是也失去了一些灵活性,而且给人一种“高耦合”、违反单一职责的感觉。这个确实是确定。
  那么怎么办呢?我们可以选择“手动运行”。这种方式下,分页控件只负责页面的显示(上一页、下一页、页号导航、记录数、页数等)和事件的触发(还有其他的一些,比如URL的参数处理等)。其他的功能都可以按照您喜欢的方式来处理。比如如何提取数据,提取哪里的数据,如何绑定等等。这样就增加了QuickPager分页控件的灵活性。


在线演示:http://demo.naturefw.com/Nonline/QuickPager/Customer/URL01.aspx
 

分页方式——Postback

  这个适合后台管理类的项目,比如网站后台管理、OA、CRM等。一个最大的优点就是可以很方便的保留用的输入的查询条件。
  支持直接获取指定页号的记录。
  可能您认为使用postback分页,第一次访问只能看到第一页的数据,想在第一次访问就看到其他页的数据就实现不了的。这是个误区,其实是可以实现的,只是QuickPager是可以实现的。通过list.aspx?page=3 这样的连接,就可以看到第三页的记录。当然进入后还是可以正常翻页,看其他的页面。

 
在线演示:http://demo.naturefw.com/Nonline/QuickPager/PostBack/Simpleness.aspx  

 
分页方式——Postback伪URL

  如果在网页里面使用Postback来分页的话,那么对于搜索引擎就很不友好了。那么怎么办呢?除了可以采用URL的方式来分页之外,还可以用这种伪URL的分页方式。
  我们可以对比一下两个连接方式。

Postback的连接:

HTML code
<a  href="javascript:__doPostBack('Pager1',2)">下一页</a>

 
伪URL的连接:

HTML code
<a  href="PsotURL.aspx?page=7" onclick="javascript:__doPostBack('Pager1',7);return false;">下一页</a>

 
  原理也很简单,就是把原来放在href里的js函数,放在了onclick事件里面,然后加上return false。再把href里的连接按照URL的方式来写就可以了。
  这样对于搜索引擎来说,是一个可以访问的连接。对于用户来说,起作用的是那个js函数。这样即可以照顾搜索引擎,又可以利用Postback的保留查询条件的优势了。

  当然这个并不是一个很好的解决方法,更好的是ajax伪URL,不过这个难度要高一点。Postback伪URL,完全可以用Postback的方式来写,对于习惯这种方式的人来说,就比较舒服了。
 

在线演示:http://demo.naturefw.com/Nonline/QuickPager/PostBack/PsotURL.aspx


分页方式——URL

  这个适合在网页里使用,优点是搜索引擎可以识别,当然收不收录是另一个话题了,至少是可以识别的。

  QuickPager分页控件在URL分页方式里有一个很方便的地方——可以自动保留URL里面的参数。实现这个功能并不需要设置什么属性,完全自动的。比如 list.aspx?page=2&kind=3&area=10 。在翻页的时候,kind=3、area=10这类的参数都会被自动保留(传递下去)。当然其他的参数也都可以。如果感兴趣的话,您可以通过下面的连接地址自己测试一下。
  请注意:page 这个参数是分页控件专用的,您自己的参数请使用其他的名称。

在线演示:http://demo.naturefw.com/Nonline/QuickPager/URL/Synthesis.aspx
 

分页方式——URL重写

  这个是完全为了搜索引擎而做的。有人说,这么做并不会给收录带来什么好处,完全是一样的。但是现在比较流行这个,有一些人喜欢,那么作为一个分页控件来说,支持这种分页方式也就是必须的了。

  可以通过属性来设置页面名称,默认是list{0}.aspx ,{0}代表页号。您可以设置成list_{0}.html 等方式。

在线演示:http://demo.naturefw.com/QuickPager/URL/list1.aspx 

 
分页方式——Ajax For服务器控件伪URL

  这个名称比较长。Ajax是刚加入的一个功能,目前还不太完善。这个是针对postback的分页方式,也就是针对服务器控件来做的。基于jQuery.ajax实现,没有用asp.net 的ajax控件。还有一个优点就是可以通过修改属性,切换成其他的分页方式。

  如果您的程序里使用服务器控件(GridView)来显示数据,老板(客户)听说了Ajax,于是要求项目里都要改成ajax的方式。那么您就可以采用这种方式了。原来的程序不用改,只需要换成QuickPager分页控件,选择AjaxForWebControl方式即可,其他的代码就不用改了。除了GridView控件之外,其他控件也是支持的。