思路:前端负责收集分页信息与筛选条件,后端可以通过分页信息的页码+每页多少条+筛选条件查到具体的51-100条数据。
每次的查询,下一页,末页等操作其实是更新分页信息与筛选条件罢了
①定义每页条数10条,有一个固定的查询方法,参数为分页信息或是筛选条件,如果都没有默认从第一页查询。
int pageNo = 1; //页码
int pageNum = 10; //条数
if(request.getParameter("pageNo") != null && !"".equals(request.getParameter("pageNo"))){
pageNo = Integer.parseInt(request.getParameter("pageNo"));
}
②不管是条件查询,还是点击下一页,重新调用本页面,重新获取分页信息或是筛选条件,再进行数据填充
archiveInfo.setTitle(request.getParameter("title")!=null?request.getParameter("title"):"");
archiveInfo.setClientCode(request.getParameter("clientCode")!=null?request.getParameter("clientCode"):"");
archiveInfo.setArchiveNo(request.getParameter("archiveNo")!=null?request.getParameter("archiveNo"):"");
archiveInfo.setCharger(request.getParameter("charger")!=null?request.getParameter("charger"):"");
archiveInfo.setFileNo(request.getParameter("fileNo")!=null?request.getParameter("fileNo"):"");
submitArchiveList = dao.getSubmitArchiveList2(【当前页码,每页条数】, 筛选条件archiveInfo);
③点击下一页,上一页,末页,首页时触发一个传递当前页码的函数,函数再submt本页面,每次提交到本页面,就会触发固定的查询方法,计算分页信息或是筛选条件,实现传递了页码的查询展示
<script>
//普通固定的提交本页面,重新调查询方法,筛选条件随着table表格已经提交了,在本页面也通过request获取了条件参数
function query(){
document.submitPigeonholeFrm.action="submitArchiveList.jsp";
document.submitPigeonholeFrm.submit();
}
//下一页按钮,url也是提交给本页面,但还包含了一个页码pageNo
function go_page(url){
submitPigeonholeFrm.action=url;
submitPigeonholeFrm.submit();
}
</script>
<
!-- 提交归档列表 第 1 页 共 63 页 记录共 3136 条 首页 上页 下页 末页 -->
<form id="submitPigeonholeFrm" name="submitPigeonholeFrm" action="" method="post">
<table border="0" width="100%" style="margin-top: 10px;">
<tr>
<td width="200" style="border: 0px;padding-left: 15px;">提交归档列表</td>
<td align="right" style="border: 0;padding-right: 15px;">
<span class="text">第<%=pageNo %>页 共 <%=pageInfo.iTotalPage%> 页 记录共 <%=pageInfo.iTotalRow%> 条 </span>
<%
if(pageNo>1){
%>
<a href="javascript:void(0)" onclick="go_page('submitArchiveList.jsp?pageNo=1')">首页</a>
<%}else{
%>
<span class="text">首页</span>
<%}
%>
<%
if (pageNo > 1) {
nextPage = pageNo;
%> <a href="javascript:void(0)"
onclick="go_page('submitArchiveList.jsp?pageNo=<%=String.valueOf(--nextPage) %>')">
上页 </a> <%
} else {
%> <span class="text">上页</span> <%
}
%> <%
if (pageNo < pageInfo.iTotalPage) {
nextPage = pageNo;
%> <a href="javascript:void(0)"
onclick="go_page('submitArchiveList.jsp?pageNo=<%=String.valueOf(++nextPage) %>')">
下页</a> <%
} else {
%> <span class="text">下页</span> <%
}
%> <%
if (pageNo != pageInfo.iTotalPage && pageInfo.iTotalPage != 0) {
%> <a href="javascript:void(0)"
onclick="go_page('submitArchiveList.jsp?pageNo=<%=String.valueOf(pageInfo.iTotalPage) %>')">
末页</a> <%
} else {
%> <span class="text"> 末页</span> <%
}
%>
</td>
</tr>
</table>
展示数据的序号时,根据页码可以计算当前页是第多少条数据,每展示一条数据,num++
int num = (pageNo-1)*p.iPageCountUse+1; //当前页的第num条数据,通过页码和每页条数就可算出来
<td align="center"><%=num++ %></td> //在循环遍历时,展示一条数据,num++