3.3 分页行生成工具

  分页行生成工具依赖数据区表生成工具,这是一个封装比较好的工具,通过上面的例子可以看到,除了和相关的数据区表生成工具发生关联外没有其它什么命令就能完全实现翻页控制。包括点击数据区表头排序(只用设置排序字段名)都是自动实现的。
  这个分页行可以设定每页行数、跳到上页、下页或者指定页,输入的页码位数还能根据总页数自动调整。所以功能比较完善,而且可以设置自己喜欢的样式。
  下面简单介绍实现方式:
  一、生成的代码。
<input type=hidden name='PPV_message' value=''>
<input type=hidden name='reqfrompage' value=''>
<input type=hidden name='reqfromtable' value=''>
<input type=hidden name='OrderClause' value='IES_ID desc,IES_INDEX desc'>
<input type=hidden name='OriOrderField' value=''>
<input type=hidden name='OriOrderType' value=''>
<input type=hidden name='SqlClause' value=''>
<input type=hidden name='detailcount' value='20'>
<input type=hidden name='selectdetail' value=''>
  上面是存储与页面有关的参数,包括排序方式等
<input type="hidden" name="PAC_pageNo" value="1">
<input type="hidden" name="PAC_pageSize" value="20">
<input type="hidden" name="PAC_pageNo_bak" value="1">
<input type="hidden" name="PAC_pageSize_bak" value="20">
  这些是分页行相关的参数
<TABLE width="100%" class="pageTABLE">
<tr>
<td class=pageTD>
&nbsp;&nbsp;第<input type="text" name="PAC_pageNo_0" value="1" class="pageInputText" size="1" maxlength="1" οnkeyup="javascript:PAC_pageNo.value=PAC_pageNo_0.value;PAC_pageSize.value=PAC_pageSize_0.value;PAC_pageLinePressKey('');">页/共4页(共75条记录)
<input type="button" class="pageButton" value="上页" disabled onClick="javascript:PAC_pageNo.value=0;PAC_pageLineQry('');">
<input type="button" class="pageButton" value="刷新" onClick="javascript:PAC_pageNo.value=PAC_pageNo_0.value;PAC_pageSize.value=PAC_pageSize_0.value;PAC_pageLineQry('');">
<input type="button" class="pageButton" value="下页" onClick="javascript:PAC_pageNo.value=2;PAC_pageLineQry('');">
每页<input type="text" name="PAC_pageSize_0" value="20" class="pageInputText" size="2" maxlength="2" οnkeyup="javascript:PAC_pageNo.value=PAC_pageNo_0.value;PAC_pageSize.value=PAC_pageSize_0.value;PAC_pageLinePressKey('');">行
</td>
</tr>
</table>
  这些是生成的代码,在一个table中,代码包含调用几个js函数。
  二、页面函数:
这是调用查询方法的函数
function PAC_pageLineQry(t){
 var pre="";
 if (t!="") pre=t+"_";
 var p=FOM_getFormObj().elements[pre+"PAC_pageNo"];
 var s=p.value;
 if (!STR_isUnsignedInt(s,s.length)){
  p.value=FOM_getFormObj().elements[pre+"PAC_pageNo_bak"].value;
 }
 p=FOM_getFormObj().elements[pre+"PAC_pageSize"];
 var s=p.value;
 if (!STR_isUnsignedInt(s,s.length)){
  p.value=FOM_getFormObj().elements[pre+"PAC_pageSize_bak"].value;
 }
 FOM_getFormObj().elements["reqfrompage"].value='qryItem';
 FOM_getFormObj().elements["reqfromtable"].value=t;
 FOM_getFormObj().submit();
}
这是按回车键后执行的方法
  function PAC_pageLinePressKey(t){
 if (13!=event.keyCode) return;
 PAC_pageLineQry(t);

}
这是标题排序函数
  function PAC_orderby(t,str){
 var pre="";
 if (t!="") pre=t+"_";
 var order="";
 var pf=FOM_getFormObj().elements[pre+"OriOrderField"];
 var pt=FOM_getFormObj().elements[pre+"OriOrderType"];
 if(pf.value==str){
  if(pt.value=="ASC"){
   order=" order by "+str+" DESC";
   pt.value="DESC";
  }else{
   order=" order by "+str;
   pt.value="ASC";
  }
 }else{
  order=" order by "+str;
  pf.value=str;
  pt.value="ASC";
 }
 FOM_getFormObj().elements[pre+"OrderClause"].value=order;
 FOM_getFormObj().reqfrompage.value="orderby";
 FOM_getFormObj().elements["reqfromtable"].value=t;
 FOM_getFormObj().submit();
  }

  三、相关类:
  关于相关类的代码参考《2.10 业务开发(给开发人员的样例程序)》。需要注意的是下面一段:

  if(request.getParameter("reqfrompage").equals("orderby"))
  {
      operateOrderBy(request,new SynchroLogQryBusiness());
      return new BaseForward("SUCCESS");
  }
  需要补充的是,查询部分翻页内容的具体代码都封装到底层,开发人员也不需要关心怎么实现。如果你对这篇文章感兴趣,那问你一个问题,页面reqfromtable参数的作用是什么?PAC_pageLineQry函数参数中的t起什么作用?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值