display table 外部分页 支持当前排序
需求:根据当前面码数currentPage,每页记录数pageSize,数据总记录数totalCount,进行分页,算出,每页的数据开始索引startIndex和结束索引endIndex
web.xml
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>CustomerServlet</servlet-name>
<servlet-class>com.tht.customer.servlet.CustomerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CustomerServlet</servlet-name>
<url-pattern>/servlet/CustomerServlet</url-pattern>
</servlet-mapping>
<jsp-config>
<taglib>
<taglib-uri>http://jsptags.com/tags/navigation/pager</taglib-uri>
<taglib-location>/WEB-INF/pager-taglib.tld</taglib-location>
</taglib>
</jsp-config>
result.jsp
当设定 partialList="true"时,自动进行当前页排序
<%@ taglib prefix="display" uri="http://displaytag.sf.net" %>
<head>
<link rel="stylesheet" href="<%=request.getContextPath()%>/css/print.css" type="text/css" media="print" />
<link rel="stylesheet" href="<%=request.getContextPath()%>/css/screen.css" type="text/css" media="screen,print" />
</head>
<body>
<display:table name="list"
class="its" id="item" name="list" defaultsort="1" pagesize="${pageSize}" partialList="true" size="resultSize" requestURI="/displaypagination/servlet/CustomerServlet">
<display:column property="id" title="I" sortable="true" ></display:column>
<display:column property="numcuguid" title="ID" sortable="true" ></display:column>
<display:column property="vc2cuname" title="vc2cuname" sortable="true"></display:column>
<display:column property="vc2cucode" title="vc2cucode" sortable="true"></display:column>
</display:table>
<body>
Servlet部分
1、页面请求,会把请求的页码数传给后台:
//得到当前页的字符串
String strP=request.getParameter((new ParamEncoder("item").encodeParameterName(TableTagParameters.PARAMETER_PAGE)));
//请求的需要显示的页码数
int currentPage=0;
if(strP==null){
currentPage=1;
}else{
currentPage=Integer.parseInt(strP);
}
//当前页
System.out.println("currentPage:"+currentPage);
2、通过后台方式得到数据库中的总记录数:
//总记录数
int totalCount=new BaseDao<CustomerServlet>().getTotalCount("select count(*) from ct_cuinfo");
3、算出开始索引和结束索引
提供参数值 int currerntPage,int pageSize,int totalCount
/**
* oracle分页工具类
* @author liuwen
* 传参进来 int currerntPage,int pageSize,int totalCount
*
*/
public class PageTools {
int resultSize=100; //总页数
int pageSize=5;// 每页显示的记录数
int totalCount=0; //总记录数
int currerntPage=0;//当前页码数
int startIndex=0;//开始记录索引
int endIndex=0; //结束记录索引
/**
*
* @param currerntPage 当前页码数
* @param pageSize 每页显示的记录条数
* @param totalCount 总记录数
*/
public PageTools(int currerntPage,int pageSize,int totalCount){
this.currerntPage=currerntPage;
this.pageSize=pageSize;
this.totalCount=totalCount;
calResultSize(); //计算总页数 计算优先级别1
calStartIndexAndEndIndex(); //计算开始的rownum和结束的rownum 计算优先级别2
}
/**
* 计算总页数 计算优先级别1
*/
public void calResultSize(){
int modTotal=this.totalCount%pageSize;
if(modTotal==0){
resultSize=this.totalCount/pageSize;
}else{
resultSize=this.totalCount/pageSize+1;
}
}
/**
* 计算开始的rownum和结束的rownum 计算优先级别2
*/
public void calStartIndexAndEndIndex(){
if(currerntPage==1){
startIndex=0;
}else{
startIndex=(currerntPage-1)*pageSize;
}
endIndex=currerntPage*pageSize+1;
}
}
3、通过开始索引和结束索引查出请求页码数据,显示给前端
- 大小: 9.3 KB
分享到:
相关推荐
"display table外部分页,支持外部排序"这个主题主要涉及两个关键概念:外部分页和外部排序。 外部分页(External Pagination)指的是当数据存储在数据库或其他外部存储介质中时,只在用户需要时从服务器获取相应页...
在IT行业中,"display table 外部分页 不支持排序"是一个常见的前端开发问题,尤其是在处理大量数据时。Display table通常指的是HTML中的`<table>`元素,用于展示表格数据。外部分页则是指将数据分块加载,而不是一...
Display Tag自动处理分页链接的生成,只需通过`display:table`标签的属性就可以定制分页样式。例如,可以设置`export="true"`启用导出功能,或者使用`sort="true"`开启排序功能。 为了实现动态加载数据,你的后端...
Display Tag的分页功能主要通过`<display:table>`标签实现,可以设置页码、每页记录数等参数,通过`<display:column>`标签定义列的显示。同时,Display Tag会自动生成分页链接,用户点击即可切换页面。 而Pager ...
`display:table`标签用于定义表格,`display:sort`属性允许用户对列进行排序,`pagesize`属性指定了每页的记录数。`display:pagination`标签则生成分页链接。 注意,以上代码仅为示例,实际应用中需要根据具体需求...
在JavaScript中实现表格(Table)行排序是一种常见的需求,特别是在数据可视化和用户交互丰富的Web应用中。本资源“js 实现 table 行排序 TableOrder.rar”提供了一个实用的方法来实现这个功能。以下是对该实现的...
本主题"Div仿制table送自定义Scrollbar支持排序"正是探讨这种技术的应用。 首先,Div仿制table是通过CSS布局(如Flexbox或Grid)和JavaScript来构建一个看起来和表格类似的结构,这样可以更灵活地控制单元格的样式...
综合了网上的一些拖动table列宽的方法我自己写了一个 这个是针对Display:table 这个...其实原理很简单我是在页面最后添加的js代码也就是在display:table生成了<table>之后所有稍作分析就可以应用在普通的table标签中
在网页开发中,数据展示是不可或缺的一部分,而js分页和列表排序则为大量数据的管理提供了高效且用户友好的解决方案。"js分页+列表排序+属性显示"这一技术组合,旨在提供一种无需页面刷新就能实现数据动态加载、排序...
然而,SMARTFORMS并不直接支持分页,因此在处理大量数据时,开发者通常需要手动实现分页逻辑。这可能涉及到计算每页的数据量,以及在用户翻页时重新加载数据。 在实际项目中,结合ALV和SMARTFORMS,可以构建出既...
<table id="example" class="display"> <!-- 表格内容... --> </table> ``` ### 5. 服务器端排序 对于大型数据集,为了提高性能和用户体验,可以在服务器端处理排序。例如,使用PHP、Python、Node.js等后端语言,...
同样,如果一个元素的`display`属性设置为`table-cell`,它就会表现得像`<td>`或`<th>`元素,即表格单元格。 在页面布局实例中,我们可以创建一个无表格的“表格”布局。首先,创建一个包含多个子元素的父容器,并...
数据分页的核心原理是通过计算当前页的起始位置和结束位置,然后隐藏或显示对应的表格行。这种方法在数据量较小的情况下可行,但当数据量非常大时,一次性加载所有数据可能会导致性能问题。为了避免这种情况,可以...
DisplayTag不仅支持分页,还支持排序、导出数据到各种格式(如CSV、Excel),以及复杂的表格布局和样式自定义。这使得它成为JSP开发者的热门选择。 在使用DisplayTag时,我们需要在JSP页面中引入DisplayTag的库文件...
说明: 一、含演示数据库建立脚本(较简单) 二、使用Struts、Hibernate和display超简单的实现了分页,你不用在页面上再写很多和很多判断,简单到只需要几行语句: ...table name="lst" cellspacing="0" border=...
DisplayTag 是一个强大的开源 JSP 标签库,专门用于创建复杂的表格展示,包括排序、分页、格式化数据等功能。在网页开发中,DisplayTag 可以极大地简化表格的生成,提高开发效率。 首先,我们需要在 `web.xml` 文件...
displaytable标签.pdf
前端分页的核心在于计算当前页的数据范围,并根据这个范围渲染页面。 1. **HTML结构** 创建一个基础的HTML结构来显示分页条,通常包括上一页、下一页、页码选择等元素。例如: ```html 上一页 ...