1. 功能介绍

    当展现数据过多时,可以分页显示,每页多少条数据可以控制,需要查看哪一页数据也可以选择,一般用于展现数据量大的查询列表。

  2. 参数说明

    参数名 参数类型 是否必须 默认值 描述
    source com.linkage.appframework.data.IDataset   分页的数据源
    listener org.apache.tapestry.IactionListener   点上、下、首、末页触发的分页查询事件
    refreshParts java.lang.String   点分页动作局部刷新的区域(局部区域需要定义为Part组件),该值指定为Part的id即可
    pageSize int   20 每页显示的初始记录数,该记录数可以由用户自行调整
    name java.lang.String   default_pagin 如果一个页面有多个分页表格,则需要给每个分页组件指定名称,否则不需填写,
    这个名称在对应的查询方法中需要引用,来完成整个分页功能
    beforeAction java.lang.String     点分页前执行的javascript
    afterAction java.lang.String     点分页后执行的javascript方法
    checkboxName java.lang.String     如果分页时需要传递表格列中选中的checkbox组,需要绑定该checkbox名称在分页时传递,
    注:checkbox中的值必须唯一,支持多个checkbox,用逗号分开即可,如:checkboxName="name1,name2
    needCount boolean   true 初次执行分页时是否执行count的选项,默认初次将执行count,若count时数据量很大需要优化性能的情况下,可以设置为false并结合pd.getPagination(false);表示初次分页时不执行count
  3. 注意事项

    1. 由于分页时默认对第一次分页数据进行一次count,如果count中的数据量巨大,会导致整个第一次查询很慢,故在这种情况下,最好将needCount="false",结合pd.getPagination(false),这样分页时将不count提高效率,count需要手工点击才会执行
    2. 分页组件可以将每页的checkbox值带到下页保存,只需要绑定checkboxName即可
    3. 分页提供两种视图,简单控制视图(包括上、下页、页数、当前页数等),还有统计视图(包括统计,页码跳转,显示全记录等)
  4. 代码片段

    1. HTML写法

      <span
      	jwcid="@wade:NavBar"
      	source="ognl:infos"
      	listener="ognl:listeners.querySchedules" refreshParts="refreshtable"
      	name="default_pagin" //如果一个页面只有唯一的分页表格,此属性不需要填写,系统将生成默认的名称
      />
      

      注:Part组件用法
      <span jwcid="@wade:Part" id="refreshtable" optimize="true"> //id为分页组件中refreshParts属性指定的名称
      	… //分页数据,分页组件需要包含在内
      </span>
      
    2. JAVA写法

      queryList(sql, pd.getPagination());
      

      注:如果HTML中定义了分页组件,在dao中需要获取分页组件来执行分页操作
      该方法有以下几种写法:
      1. pd.getPagination(),获取默认的分页控件,适用于页面只有一个分页表格,并且每页显示数使用系统定义(系统定义为20条/页)
      2. pd.getPagination(false),同上,但不执行count
      3. pd.getPagination(10),获取默认的分页控件,并指定每页显示数,适用于页面只有一个分页表格,但需要分页组件自定义每页显示数属性,如pageSize="10"
      4. pd.getPagination(10, false),同上,但不执行count
      5. pd.getPagination("info_pagin"),根据分页控件名称获取分页组件,需要定义NavBar的name属性,适用于一个页面有多个分页表格,但不需要定义每页显示数,如name="info_pagin"
      6. pd.getPagination("info_pagin", false),同上,但不执行count
      7. pd.getPagination("info_pagin", 10),根据分页控件名称获取分页组件,需要定义NavBar的name属性,适用于一个页面有多个分页表格,并且需要定义每页显示数
      8. pd.getPagination("info_pagin", 10, true),同上,但不执行count
  5. 效果演示

    控制视图

    统计视图