分页控件SqlPager如何使用介绍

分类: asp.net   出处:iocblog整理  更新时间:2009-06-10   添加到收藏  

     sqlpager分页控件是一个多功能灵活的分页控件,原理是利用了pageddatasource()数据源进行分页处理,现此控件已集成于winson.framework框架里(以下简称wf),同时也使用了wf框架里的数据库低层操作语句,因此同时也可以支持多种数据库
  
  一、主要功能:
  1、支持ajax分页,也可设置后台post模式
  2、支持多种分页按钮样式,同时也可以自定义按钮样式
  3、支持一次性读取所有数据,或者只读取当前页面数据进行分页
  4、可对gridview、repeater、basedatalist、listcontrol等数据源控件进行绑定处理
  5、支持直接在页面写sql语句读取数据,或者在后台设置自定义数据源进行绑定
  6、可对分页数据指定排序字段
  7、完全开源,可灵活修改,呵呵
  
  
  二、基本使用:
  1、新在页面顶部插入以下代码:

<%@ register assembly="winson.wcontrols" namespace="winson.sqlpager" tagprefix="sqlpager" %> 

  2、在需要放置分页控件的地方,插入以下代码:

  <sqlpager:sqlpager id="sqlpager1" runat="server" controltopaginate="gridview1" width="700"
   itemsperpage="4" borderstyle=dotted backcolor="#ffffff" pagerstyle=customandnumeric
   firstbutton="第一页" prvebutton="上一页" nextbutton="下一页" lastbutton="最后一页"
   pagingmode="cached" ></sqlpager:sqlpager> 

 
   基本参数说明:
  id:即本分页控件的自身id
  controltopaginate:分页控件需绑定的数据源控件的id,本例中数据源控件为gridview
  borderstyle:分页控件边框样式,本例中为虚线
  pagerstyle:即分页按钮的样式,此为一个枚举参数,同时也是设置是否使用ajax的参数,以下将会有详细说明
  pagingmode:是否使用cached,如果使用noncached则只读取对当前页面数据,如为cached,则一次性读取所有数据然后进行分页,建议数据量少时使用noncached,但如果想与tab控件配合使用,则必须要使用cached模式
  
  以下为分页按钮的自定义样式,只有当pagerstyle设置为自定义样式时才生效
  firstbutton:第一页的按钮样式
  prvebutton:上一页的按钮样式
  nextbutton:下一页的按钮样式
  lastbutton:最后一页的按钮样式
  
  
  3、以上代码配置好后,即可在后台为分页控件设置数据源,当然在前台也可以直接用参数设置
  
  设置数据源有2种方式,一种是直接在前台使用selectcommand参数进行设置,如将以下语句直接加到控件标签里
  
  <sqlpager:sqlpager selectcommand = "select * from employees" ></sqlpager:sqlpager>
  另一种方式是可以使用自定义的数据源,如dataset,但在使用自定义数据源之前,需将参数usecustomdatasource设置为true,如下代码:
  
  sqlpager1.usecustomdatasource = true;
   sqlpager1.customdatasource = dbop.executedataset("select * from employees ", "ds");
   sqlpager1.databind();
  以上方式只能在后台执行。需要注意的是,不管哪种方式,最后都必须在后台调用databind()方法。
  
  四、高级应用
  
  1、使用ajax分页:
   本控件支持ajax分页,但还必须写一些客户端的代码,相关的客户端代码我已在demo里有啦,具体可以打开pagerdemo.aspx文件查看,在需要分页的页面上添加以下js代码:

  function setpageto(pageindex)
   {
   var context=document.getelementbyid("listdiv");
   context.innerhtml="数据加载中";
   var arg=pageindex;
   <%= clientscript.getcallbackeventreference(this, "arg", "oncallservercomplete", "context")%>;
   }
  
   function oncallservercomplete(result,context)
   {
   context.innerhtml=result;
   } 


     然后在后台添加相应的ajax方法,建议使用我demo里的方式,将这些代码添加到一个基类页面里,然后各页面继承来用,请看我的basepage.cs文件,即以下代码: 

[1] [2] 下一页


Tag: 分页



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。