分页标签库Pager
来源:互联网 发布:淘宝买东西怎么退款 编辑:程序博客网 时间:2024/05/01 22:08
分页标签库Pager
N.1 简介
使用Pagers标签库可以实现分页功能。
开发者主页
N.2 用法
JSP中动态生成表格的代码一般如下所示:
<%...
for(int i =0; i< 行数; i++)
{
%>
<tr>
<td>内容</td>
</tr>
<%...
}
%>
</table>
在本章中我使用pg作为Pager标签库的前缀。
如果要使用Pager标签库进行分页处理的话,需要使用<pg:pager>标签将<table>包括在内,然后在内部使用一系列的Pager标签表示上一页、下一页等控制按钮。常用的控制标签如下表所示:
下面是一个例子,源代码如下所示:
<%...
Vector<String[]> v = (Vector<String[]>)request.getAttribute("table_list");
int maxPageItems=25;
String url="/INtools/Db/ListTable.action";
int item_count= v.size();
int page_count= item_count % maxPageItems==0 ? item_count/ maxPageItems : item_count/ maxPageItems+1;
%>
<formid="form1" name="form1" method="post" action="">
<pg:pager
items="<%= item_count %>"
url="<%= url %>"
index="center"
maxPageItems="<%= maxPageItems %>"
maxIndexPages="10"
isOffset="true"
export="offset,currentPageNumber=pageNumber"
scope="request">
<tableborder="1" cellspacing="0" cellpadding="3" bordercolordark="#ffffff"
bordercolorlight="#000066" width='100%'bgcolor="#76a6c7">
<tr class="table_desc">
<td colspan="3">后台表集合</td>
</tr>
<tr class="table_title">
<td width="33%">表名</td>
<td width="33%">所属模块</td>
<td width="34%">操作</td>
</tr>
<%...
for(int iRow = offset.intValue(), l= Math.min(iRow+ maxPageItems, v.size()); iRow< l; iRow++)
{
String[] row_data= v.get(iRow);
String table_name= row_data[0];
String module_name= row_data[1];
String table_id= row_data[2];
String bgcolor= iRow %2==0 ?"#f4fbff" : "#FFFFDD";
%>
<pg:item>
<tr bgcolor="<%=bgcolor%>" class="table_data">
<td align="left"><%=table_name%></td>
<td align="left"><%=module_name%></td>
<td align="center">
<input type="button" value="修改"/>
<input type="button" value="删除"/>
</td>
</tr>
</pg:item>
<%...
}
%>
<tr class="table_page_break">
<td colspan="3">
记录数:<%= item_count%>
页数:<%= page_count %>
<pg:first export="firstPageUrl=pageUrl" unless="current">
<a href="<%= firstPageUrl %>">|<</a>
</pg:first>
<pg:skip export="skipBackPageUrl=pageUrl" pages="<%= -10 %>">
<a href="<%= skipBackPageUrl %>"><<<</a>
</pg:skip>
<pg:prev export="prevPageUrl=pageUrl">
<a href="<%= prevPageUrl %>"><<</a>
</pg:prev>
<pg:pages><%...
if (pageNumber== currentPageNumber) {
%><b><%= pageNumber %></b><%...
}else {
%><a href="<%= pageUrl %>"><%= pageNumber %></a><%...
}
%></pg:pages>
<pg:next export="nextPageUrl=pageUrl">
<a href="<%= nextPageUrl %>">>></a>
</pg:next>
<pg:skip export="skipForwardPageUrl=pageUrl" pages="<%= 10 %>">
<a href="<%= skipForwardPageUrl %>">>>></a>
</pg:skip>
<pg:last export="lastPageUrl=pageUrl" unless="current">
<a href="<%= lastPageUrl %>">>|</a>
</pg:last>
<input type="text" size="4" name="page_no" id="page_no"/>
<input type="button" value="go" onclick="goto_page_no()"/>
</td>
</tr>
<tr class="table_button_row">
<td colspan="3">
<input type="button" value="确定" class="form_button"/>
</td>
</tr>
</table>
</pg:pager>
</form>
<scripttype="text/javascript">...
function goto_page_no()
...{
var em_page_no= document.all["page_no"];
var page_no= parseInt(em_page_no.value);
var offset=<%= maxPageItems%>* (page_no-1);
document.location.href="<%= url %>?pager.offset="+ offset;
}
</script>
分页效果如下图所示:
获取数据
该段代码用于获取显示的页面数据,在此做了如下设定,取得的显示数据的格式为Vector<String[]>,每页显示25行记录,获取页数据时需要重新执行查询,其处理操作为/INtools/Db/ListTable.action,这里我使用了struts框架,这表示一个servlet处理类,也可以是一个JSP文件。并进行了页数计算。
pager标签
- items:表示记录数
- url:表示获取数据时的处理程序
- index:页码的显示方式,可以为center、forward、half-full
- maxPageItems:每页显示的记录数
- maxIndexPages:显示的页码数
- isOffset;
- export:将pager标签支持的变量导出,
N.3 技巧
如果要实现如下功能:
- 指定跳转到某页
- 生成分页内容时需要参数TableName
可写入如下代码:
...
<pg:param name="TableName" value="<%= search_table_name %>"/>
<input type="hidden" name="TableName" id="TableName" value="<%= search_table_name %>"/>
<input type="hidden" name="pager.offset"/>
<input type="button" value="go" onclick="goto_page_no()"/>
...
</form>
<scripttype="text/javascript">...
function goto_page_no()
...{
var offset= 记录偏移值;
var frm= document.form1;
frm.elements["pager.offset"].value= offset;
frm.submit();
}
</script>
其中<pg:param>是用于点击页码翻页时提供查询参数,如果打开生成后的源代码,会发现所有的翻页标记(<a>)都加了一个参数TableName,而<input type="hidden" name="TableName" />则用于指定跳转页时提供查询参数,<input type="hidden" name="pager.offset" />则用于提供指定跳转页时的记录偏移量,其名称格式为“[pager].[pg:pager标签的export属性中的offset表示法]”。
值得注意的是,此处的<form>需要使用“get”方式,如果使用“post”方式,使用跳转按钮提交的“TableName”参数会翻倍,例如,第一次为“a”,第二次则为“a,a”。
- 分页标签库Pager
- Pager-taglib 2.0分页标签库入门
- Pager-taglib分页标签
- 分页标签:pager-taglib使用指南
- 分页标签:pager-taglib使用指南
- pager-taglib分页标签使用方法
- 分页标签:pager-taglib介绍
- pager-taglib分页标签使用方法
- pager-taglib -- 分页标签用法
- 分页标签:pager-taglib使用指南
- JSP标签之pager-taglib分页标签
- JSP标签之pager-taglib分页标签
- jsp分页标签pg:pager标签运用
- JSP标签的pager-taglib分页标签
- 使用pager标签实现自动分页
- pager-taglib标签实现分页功能
- pager分页
- tomcat启动war项目以及pager分页标签使用
- SSE2指令--使用SSE2的整型指令:算数操作指令-3
- 解决AIX忘记root密码的问题
- 各种电路或设备的接地符号标志
- ExtJs4 中 获取grid列表数据绑定到form表单
- Flume初探
- 分页标签库Pager
- c#DataGridView控件中CheckBox列的使用
- DVB数字视频广播 2
- C语言第八次上机实验
- 无可救药的拖延症——关于asp网页使用Access及大图浏览效果以及爬虫登录及下载文件
- JSP 自定义标签步骤
- IIS服务是干什么用的?
- Pager-taglib 2.0分页标签库入门
- ExtJs4中更改Store的代理(proxy)路径(url)