JUI分页使用

分页介绍

分页思路服务器返回当前页的数据,总条数,再由js来生成分页标签。分页是配合服务器端来处理的, 不是存js做的分页。 因为如果数据量很大,比如有好几百页,性能很慢。

分页组件参数要由服务器传过来targetType,totalCount,numPerPage,pageNumShown,currentPage 。框架会自动把下面的form中pageNum修改后,ajax重新发请求。下面这个form是用来存查询条件的


<form id="pagerForm" action="xxx" method="post">

<input type="hidden" name="pageNum" value="1" />/><!--【必须】value=1可以写死-->

<input type="hidden" name="numPerPage" value="20" /><!--【可选】每页显示多少条-->

<input type="hidden" name="orderField" value="xxx" /><!--【可选】查询排序-->

<input type="hidden" name="orderDirection" value="asc" /><!--【可选】升序降序-->

<!-- 其它查询条件,业务有关,有什么查询条件就加什么参数。

还有一中方式,就是我们下面使用的,可以在searchForm上设置属性rel=”pagerForm”,js框架会自动把searchForm搜索条件复制到pagerForm中 -->

<input type="hidden" name="name" value="xxx" />

<input type="hidden" name="status" value="active" />

……

</form>

分页组件处理分页流程:

1)  pagerForm中缓存了当前的查询条件,加上一个pageNum字段

2)  点击分页时动态修改pageNum,重新提交pagerForm

分页组件使用方法:

<div class="pagination" targetType="navTab" totalCount="200" numPerPage="20" pageNumShown="10" currentPage="1"></div>

测试方法,currentPage从1改为2,就是第2页了,把上面那句改为:

<div class="pagination" targetType="navTab" totalCount="200" numPerPage="20" pageNumShown="10" currentPage="2"></div>

参数说明:

targetType: navTab或dialog,用来标记是navTab上的分页还是dialog上的分页 (dialog是弹窗窗口的模式,如果是dialog那么下面对应的targetType和onsubmit="return
navTabSearch(this);" 等都要修改(dialogSearch(this)))

totalCount: 总条数

numPerPage: 每页显示多少条

pageNumShown: 页标数字多少个

currentPage: 当前是第几页

注意:

服务器端返回一个页面碎片,其中包括pagerForm, table, 和分页的div。只要把这个页面碎片组装好就行。

分页组件使用


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><base href="<%=basePath%>">

<%@taglib uri="/struts-tags"  prefix="s" %>

<!--分页的form-->

<form id="pagerForm" action="<%=basePath%>/admin/customer_main.action" method="post">      <input type="hidden" name="pageNum" value="1" />      <input type="hidden" name="numPerPage" value="${param.numPerPage}" />--></form>

<div class="pageHeader">

<!--查询的form--><form  rel="pageForm"  onsubmit="return navTabSearch(this);"  action="<%=basePath%>/admin/customer_main.action" method="post">   <div class="searchBar">  <ul class="searchContent">   <li>    <label>我的客户:</label>    <input name="keywords" type="text" size="25" value="${param.keywords}" alt="请输入客户名"/>   </li>     </ul>    <div class="subBar">   <ul>    <li><div class="buttonActive"><div class="buttonContent"><button type="submit">检索</button></div></div></li>    <li><a class="button" href="demo_page6.html" target="dialog" mask="true" title="查询框"><span>高级检索</span></a></li>   </ul>  </div> </div> </form></div>

<div class="pageContent"> <div class="panelBar">  <ul class="toolBar">      <li><input type="checkbox" class="checkboxCtrl" group="ids" />全选</li>      <li><a title="确实要删除这些记录吗?" target="selectedTodo" rel="ids" postType="string" href="<%=basePath%>/admin/customer_deleteAll.action" class="delete"><span>批量删除</span></a></li>   <li><a class="add" href="<%=basePath%>/admin/customer_addInput.jsp" target="navTab"><span>添加</span></a></li>   <li><a class="delete" href="customer_delete.action?customer.id={cid}" target="ajaxTodo" title="确定要删除吗?"><span>删除</span></a></li>   <li><a class="edit" href="customer_updateInput.action?id={cid}" target="navTab"><span>修改</span></a></li>   <li class="line">line</li>   <li><a class="icon" href="demo/common/dwz-team.xls" target="dwzExport" targetType="navTab" title="实要导出这些记录吗?"><span>导出EXCEL</span></a></li>  </ul> </div> <table class="table" width="100%" layoutH="150">  <thead>   <tr>     <th width="50">选择</th>    <th width="120">序号</th>    <th>客户昵称</th>    <th width="100">客户名</th>    <th width="150">客户类型</th>    <th width="80" align="center">客户状态</th>    <th width="80">客户邮箱</th>    <th width="80">创建时间</th>    <th width="80">上次登录时间</th>    <th width="80">上次登录IP</th>   </tr>  </thead>  <tbody>  <s:iterator value="customers" var="c">     <tr target="cid" rel="${c.id}">         <td><input type="checkbox" name="ids" value="${c.id}" /></td>         <td>${c.id}</td>         <td>${c.cus_id}</td>         <td>${c.cus_name}</td>         <td><s:if test=‘#c.cus_type=="2"‘>普通客户</s:if><s:else>管理员</s:else></td>         <td><s:if test=‘#c.cus_isLock=="0"‘>正常使用</s:if><s:else>用户锁定</s:else></td>         <td>${c.cus_email}</td>         <td>${c.cus_createtime}</td>         <td>${c.last_logintime}</td>         <td>${c.last_loginip}</td>     </tr>    </s:iterator>  </tbody> </table> <div class="panelBar">  <div class="pages">   <span>显示</span>   <select class="combox" name="numPerPage" onchange="navTabPageBreak({numPerPage:this.value})">    <option value="20">20</option>    <option value="10">10</option>    <option value="30">30</option>    <option value="500">50</option>    <option value="100">100</option>   </select>   <span>条,共${pager.totalCount}条</span>  </div>  <!--分页组件-->  <div class="pagination" targetType="navTab" totalCount="${pager.totalCount}" numPerPage="${pager.everyPage}" pageNumShown="10" currentPage="${pager.currentPage}"></div>

</div> </div>

运行效果

实际项目参考代码:链接:http://pan.baidu.com/s/1jG5Vp9G 密码:t9hr  密码是我的真实名字的拼音

以上整理自实际项目和网络~

时间: 2025-01-09 07:29:28

JUI分页使用的相关文章

关于jui框架的java web分页刷新功能实现!

jsp页面部分代码: 头部: 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 4 <%@ taglib prefix="s" uri="/struts-tags"%> 5 <%@ page isELIgnored="false&qu

python__Django 分页

自定义分页的类: #!/usr/bin/env python # -*- coding: utf-8 -*- # Created by Mona on 2017/9/20 from django.utils.safestring import mark_safe class Paginator: ''' 页码的格式依赖于bootstrap: 使用案例: from django.shortcuts import render,redirect,HttpResponse from app01.mod

ajax+分页

<!DOCTYPE html><html><head lang="zh-cn"><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"><meta http-equiv="X-UA-Compat

使用插件bootstrap-table实现表格记录的查询、分页、排序等处理

在业务系统开发中,对表格记录的查询.分页.排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有名的开源表格插件,在很多项目中广泛的应用.Bootstrap-table插件提供了非常丰富的属性设置,可以实现查询.分页.排序.复选框.设置显示列.Card view视图.主从表显示.合并列.国际化处理等处理功能,而且该插件同时也提供了一些不错的扩展功能,如移动行.移动列位置等一些特殊的功能,插件可

优化LIMIT分页

在系统中需要分页的操作通常会使用limit加上偏移量的方法实现,同时加上合适的order by 子句.如果有对应的索引,通常效率会不错,否则MySQL需要做大量的文件排序操作. 一个非常令人头疼问题就是当偏移量非常大的时候,例如可能是limit 10000,20这样的查询,这是mysql需要查询10020条然后只返回最后20条,前面的10000条记录都将被舍弃,这样的代价很高.如果所有的页面被访问的频率相同,那么这样的查询平均需要访问半个表的数据.要优化这样的查询,要么实在页面中限制分页的数量,

Ajax实现无刷新分页

注:本文中使用到的一些类库在前面文章都能找到源代码,我会在文中指明链接所在,为了缩短文章篇幅,由此带来的阅读不便,敬请谅解. 本文讲解 Ajax 实现无刷新分页.实现原理.代码展示.代码下载. 这里需要说明一些知识: 1.Ajax 无刷新页面的好处:提供良好的客户体验,通过 Ajax 在后台从数据库中取得数据并展示,取缔了等待加载页面而出现的空白状态: 2.那么,Ajax 无刷新页面是运行在动态页面(.PHP)?还是静态页面(.html/.htm/.shtml)?答案是:静态页面: 3.实现原理

关于分页SQL的小总结

findPage 和findPageTotal条件分页中的条件 较为复杂点的关联查询 有取别名的 <select id="findPage" resultMap="MinOrderInfo" parameterType="map"> SELECT o.*,w.name buyName,w.MOBILE buyMobile,aa.name sellName,aa.MOBILE sellMobile,rs.CAR_BRAND_NAME c

webform:分页组合查询

一个简单的分页组合查询页面 /// <summary> /// 查询方法 /// </summary> /// <param name="tsql">SQL语句</param> /// <param name="hh">哈希表</param> /// <returns></returns> public List<Goods> Select(string un

TODO:数据库优化之分页

本文的例子是以MongoDB数据库为准,其它数据库各位也可以举一反三进行优化. 在MongoDB中分页使用 a.skip(n)跳过前n个匹配的文档: b.limit(m)返回m个结果,要是匹配的结果不到m个,则返回匹配数据量的结果,m是指定上限数量,而不是下限数量: c.sort({"name": 1,"address":-1}),1表示升序,-1表示降序. 使用skip跳过少量的文档还可以.但是数据量非常多的话,skip就会变得非常慢,每个数据库都会有这种情况,所