分页组件:
<%@ taglib prefix="page" uri="/WEB-INF/tlds/paginated.tld"%>
<page:paginated id="1"/>
$( "#allIepgs").click( function() {
//所有 type="checkbox" 的 <input> 元素
var checkboxes = $( ":checkbox");
//所有禁用的 input 元素
var disabled = $("input:disabled");
if( this.checked ) {
//所有 type="checkbox" 的 <input> 元素 都被选中
checkboxes.attr( "checked", "checked");
//所有禁用的 input 元素 都移除 被选中 checked
disabled.removeAttr( "checked" );
} else {
//如果全选checkbox没有被选 则所有 type="checkbox" 的 <input> 元素 都为不被选中
checkboxes.removeAttr( "checked" );
}
});
paginated.tld:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>2.2.3</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>my</short-name>
<uri>/paginated</uri>
<display-name>"portalMS Pager Query"</display-name>
<tag>
<name>paginated</name>
<tag-class>com.coship.dhm.portalMS.common.taglib.PaginatedTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>pageSizeList</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
PaginatedTag.java
/*
* 工程名:
* 包 名: com.xxxx.dhm.portalMS.common.taglib
* 文 件名: PaginatedTag.java
* 版 权:
* 描 述: 分页标签
* 修 改 人:
* 修改时间:
* 跟踪单号:
* 修改单号:
* 修改内容:
*/
package com.xxx.dhm.portalMS.common.taglib;
import com.opensymphony.xwork2.util.ValueStack;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.components.Component;
import org.apache.struts2.views.jsp.ComponentTagSupport;
/**
*
* 在分页标签中定义了pageSizeList元素,是可以通过页面设置有多少种每页显示的记录数。该标签的具体使用如下:
* 1、在jsp页面中引入:<%@ taglib prefix="page" uri="/WEB-INF/tlds/paginated.tld"%> 分页标签的TLD文件
* 2、在分页地方加入:<page:paginated/>,默认情况不需要设置每页显示的记录数。
* 3、如果需要设置每页显示的记录数,那么需要这样的标签设置:<page:paginated pageSizeList="10, 20, 30, 40"/>
*
*
*/
public class PaginatedTag extends ComponentTagSupport {
/**
* 序列化ID
*/
private static final long serialVersionUID = 7788925098849152116L;
/**分页组件中,下拉框列表设置*/
private String pageSizeList;
/**分页组件的ID号*/
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPageSizeList() {
return pageSizeList;
}
public void setPageSizeList(String pageSizeList) {
this.pageSizeList = pageSizeList;
}
@Override
public Component getBean(ValueStack valueStack, HttpServletRequest request,
HttpServletResponse response ) {
return new PaginatedTemplateComponent( valueStack, request );
}
protected void populateParams() {
super.populateParams();
PaginatedTemplateComponent page = (PaginatedTemplateComponent) component;
page.setPageSizeList(pageSizeList);
page.setId( id );
}
}
PaginatedTemplateComponent.java
/*
* 工程名:
* 包 名: com.xxxxx.dhm.portalMS.common.taglib
* 文 件名: PaginatedTemplate.java
* 版 权: Copyright (c) 2009 Coship All Rights Reserved.
* 描 述: 分页组件的模板
* 修 改 人:
* 修改时间:
* 跟踪单号:
* 修改单号:
* 修改内容:
*/
package com.coship.dhm.portalMS.common.taglib;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.StrutsStatics;
import org.apache.struts2.components.Component;
import org.apache.struts2.dispatcher.StrutsRequestWrapper;
import org.apache.struts2.util.TextProviderHelper;
import com.xxxxxx.dhm.common.config.impl.XMLFactory;
import com.xxxxxx.dhm.portalMS.common.Constants;
import com.xxxxxx.dhm.portalMS.common.DebugLogHelper;
import com.xxxxxx.dhm.portalMS.common.util.PageList;
import com.opensymphony.xwork2.util.ValueStack;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
/**
*
* 分页组件的模板
* 该分页组件在页面渲染的时候,向浏览器端写入一段HTML代码,该HTML代码的内容写在FreeMarker模板中。
* 因此渲染该分页组件先通过FreeMarker引擎向模板中传入数据,然后再渲染到浏览器,由浏览器显示。
*
* @author
* @version
* @since
*/
public class PaginatedTemplateComponent extends Component {
/**日志记录对象*/
private static final DebugLogHelper logger = new DebugLogHelper( PaginatedTemplateComponent.class );
/**freemaker模板处理的对象*/
private static final String PAGE_TEMPLATE = "page";
/**freemaker模板名称*/
//private static final String PAGE_TEMPLATE_NAME = "paginated.ftl";
/**HTTP请求*/
private HttpServletRequest request;
/**分页标签的下拉列表*/
private String pageSizeList;
/**分页标签的ID号*/
private String id;
public PaginatedTemplateComponent(ValueStack stack, HttpServletRequest request) {
super(stack);
this.request = request;
}
@Override
@SuppressWarnings( "unchecked" )
public boolean start(Writer writer) {
boolean result = super.start(writer);
Map<String, Object> cont = this.getStack().getContext();
StrutsRequestWrapper req = (StrutsRequestWrapper) cont
.get(StrutsStatics.HTTP_REQUEST);
this.request = req; //获取HTTP请求
String url = (String) req.getAttribute("javax.servlet.forward.request_uri");
PageList<Object> pageList = (PageList<Object>) this.getStack().findValue( "pager" );
String language = Locale.getDefault().toString();
PaginatedBean pagePaginatedBean = new PaginatedBean( this.id, pageList, url,language );
initLabel(pagePaginatedBean);
processQueryString( pagePaginatedBean );
ServletContext context = request.getSession().getServletContext();
Configuration config = (Configuration) context.getAttribute( Constants.DHM_PAGINATED_COMPONENT.getStringValue() );
try {
Template template = config.getTemplate("paginated_"+language+".ftl");
Map<String, PaginatedBean> rootMap = new HashMap<String, PaginatedBean>(1);
rootMap.put( PAGE_TEMPLATE , pagePaginatedBean);
template.process(rootMap, writer);
} catch (IOException e) {
logger.excepFuncDebugLog( "get paginated.ftl error!!", e );
} catch (TemplateException e) {
logger.excepFuncDebugLog( "proccess paginated.ftl error!!", e );
}
return result;
}
/**
* 处理查询串
* 从HTTP请求中获取查询参数,并且封装成分页组件的查询字符串,并且将查询参数以key-value的方式在分页
* 组件渲染到页面的时候,生成一组隐藏域。
*
* @param pagePaginatedBean 分页组件对象
*
*/
protected void processQueryString( PaginatedBean pagePaginatedBean ) {
String queryString = getParametersAsQueryString();
Map<String, String> hiddenMap = getParametersAsHiddenMap();
pagePaginatedBean.setQueryString(queryString);
pagePaginatedBean.setHiddenParams(hiddenMap);
}
/**
* 初始化分页组件对象
* @param pagePaginatedBean 分页组件对象
*/
@SuppressWarnings( "unchecked" )
protected void initLabel( PaginatedBean pagePaginatedBean ) {
String pageSizeLabel = TextProviderHelper.getText(Constants.MSG_PORTALMS+"page.taglib.pageszie.label",Constants.MSG_PORTALMS+"page.taglib.pageszie.label",getStack());
String totalPagesLabel = TextProviderHelper.getText(Constants.MSG_PORTALMS+"page.taglib.totalpage.label",Constants.MSG_PORTALMS+"page.taglib.totalpage.label", getStack());
String pageSizeLabelPostfix = TextProviderHelper.getText(Constants.MSG_PORTALMS+"page.taglib.pagesize.postfix",Constants.MSG_PORTALMS+"page.taglib.pagesize.postfix",getStack());
String totalRowlLabel = TextProviderHelper.getText(Constants.MSG_PORTALMS+"page.taglib.total.row.label",Constants.MSG_PORTALMS+"page.taglib.total.row.label",getStack());
String jumpLabel = TextProviderHelper.getText(Constants.MSG_PORTALMS + "page.taglib.jump.label",
Constants.MSG_PORTALMS + "page.taglib.jump.label",getStack());
pagePaginatedBean.setPageSizeLabel(pageSizeLabel);
pagePaginatedBean.setTotalRowlLabel(totalRowlLabel);
pagePaginatedBean.setPageSizeLabelPostfix(pageSizeLabelPostfix);
pagePaginatedBean.setJumpLabel(jumpLabel);
pagePaginatedBean.setTotalPagesLabel(totalPagesLabel);
//获取下拉框
List<String> pageSelected = null;
if( this.pageSizeList != null ) {
pageSelected = XMLFactory.getValueList( this.pageSizeList );
} else {
pageSelected = XMLFactory.getValueList( "paginatedComponent.pageSizeList" );
}
if( pageSelected == null || pageSelected.size() == 0 ) {
pageSelected = XMLFactory.getValueList( "10, 20, 40, 100" );
}
pagePaginatedBean.setPageSelected(pageSelected);
}
/**
* 处理查询串
* 从HTTP请求中获取查询参数,将查询参数以key-value的方式在分页组件渲染到页面的时候,生成一组隐藏域。
* @return map数据类型,以key-value的方式封装查询参数。
*
* @return Map<String,String> map数据类型,以key-value的方式封装查询参数。
*/
@SuppressWarnings("unchecked")
protected Map<String, String> getParametersAsHiddenMap() {
Map<String, Object> params = this.request.getParameterMap();
Map<String, String> hiddenParams = new HashMap<String, String>();
Iterator<Entry<String, Object>> iter = params.entrySet().iterator();
while (iter.hasNext()) {
String value = "";
Entry<String, Object> entry = iter.next();
String name = entry.getKey();
//currentPage和pageSize不作为隐藏域放在form中。
if ( "currentPage".equals( name) || "pageSize".equals( name ) || "showSuccessDialog".equals( name ) ||"queryFlag".equals( name ) ) {
continue;
}
String [] values = (String[]) entry.getValue();
if( values != null && values.length != 0 ) {
value = values[0];
}
hiddenParams.put(name, value);
}
return hiddenParams;
}
/**
* 返回查询串。
*
* 对HTTP请求中获取查询参数重新处理,对参数名为“currentPage”,“pageSize”这两个查询参数不做处理。
* @return 返回String类型,代表生成的查询字符串。
*
* @return String 返回生成的查询字符串
*/
@SuppressWarnings("unchecked")
protected String getParametersAsQueryString() {
Map<String, Object> params = this.request.getParameterMap();
StringBuffer buffer = new StringBuffer();
Iterator<Entry<String, Object>> iter = params.entrySet().iterator();
while (iter.hasNext()) {
Entry<String, Object> entry = iter.next();
String name = entry.getKey();
String value = "";
//currentPage和pageSize已经放入查询串。
if ( "currentPage".equals( name) || "pageSize".equals( name ) || "showSuccessDialog".equals( name )||"queryFlag".equals( name )) {
continue;
}
String [] values = (String[]) entry.getValue();
if( values != null && values.length != 0 ) {
value = values[0];
try {
value = URLEncoder.encode( value, Constants.PAGE_ENCODING.getStringValue() );
} catch (UnsupportedEncodingException e) {
logger.excepFuncDebugLog( "encode the '"+value+"' with UTF-8 error!", e );
}
}
buffer.append( "&" );
buffer.append( name );
buffer.append( "=" );
buffer.append( value );
}
return buffer.toString();
}
public String getPageSizeList() {
return pageSizeList;
}
public void setPageSizeList(String pageSizeList) {
this.pageSizeList = pageSizeList;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
PageList.java
package com.xxxx.dhm.portalMS.common.util;
import java.util.ArrayList;
import java.util.Collection;
public class PageList<E> extends ArrayList<E> {
/**
*
*/
private static final long serialVersionUID = -1232964988129963814L;
private int totalRows = 0;
private int totalPages = 0;
private int pageSize = 10;
private int currentPage = 1;
private boolean hasPrevious = false;
private boolean hasNext = false;
private boolean showPageLine = false;
public boolean isShowPageLine() {
return showPageLine;
}
public void setShowPageLine(boolean showPageLine) {
this.showPageLine = showPageLine;
}
public PageList() {
super();
}
public PageList(Collection<? extends E> c) {
super(c);
}
public PageList(int currentPage, int pageSize, int totalRows) {
super(pageSize);
this.currentPage = currentPage;
this.pageSize = pageSize;
this.totalRows = totalRows;
totalPages = totalRows / pageSize;
int mod = totalRows % pageSize;
if (mod > 0) {
totalPages++;
}
refresh();
}
public void reset() {
this.currentPage = 1;
refresh();
}
public void init(int totalRows) {
this.totalRows = totalRows;
totalPages = ((totalRows + pageSize) - 1) / pageSize;
refresh();
}
public void init(int totalRows, int pageSize) {
this.totalRows = totalRows;
this.pageSize = pageSize;
totalPages = ((totalRows + pageSize) - 1) / pageSize;
refresh();
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
refresh();
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
refresh();
}
public int getTotalPages() {
return totalPages;
}
public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
refresh();
}
public int getTotalRows() {
return totalRows;
}
public void setTotalRows(int totalRows) {
this.totalRows = totalRows;
refresh();
}
public void first() {
currentPage = 1;
this.setHasPrevious(false);
refresh();
}
public void previous() {
currentPage--;
refresh();
}
public void next() {
if (currentPage < totalPages) {
currentPage++;
}
refresh();
}
public void last() {
currentPage = totalPages;
this.setHasNext(false);
refresh();
}
public boolean isHasNext() {
return hasNext;
}
public void setHasNext(boolean hasNext) {
this.hasNext = hasNext;
}
public boolean isHasPrevious() {
return hasPrevious;
}
public void setHasPrevious(boolean hasPrevious) {
this.hasPrevious = hasPrevious;
}
public void refresh() {
if (totalPages <= 1) {
hasPrevious = false;
hasNext = false;
} else if (currentPage == 1) {
hasPrevious = false;
hasNext = true;
} else if (currentPage == totalPages) {
hasPrevious = true;
hasNext = false;
} else {
hasPrevious = true;
hasNext = true;
}
if (currentPage <= 0) {
currentPage = 1;
}
//有下一页,且当每页条数大于10,则显示上面的分页栏
if ( hasNext && pageSize > 10 ) {
this.showPageLine = true;
}
//没有下一页,而且当每页条数小于10,则不显示上面的分页栏
if ( !hasNext && pageSize < 10 ) {
this.showPageLine = false;
}
//没有下一页,而且每页条数大于10,则显示上面的分页栏
if ( !hasNext && pageSize > 10 ) {
this.showPageLine = true;
}
}
}
PaginatedBean.java
/*
* 工程名:
* 包 名: com.xxxx.dhm.portalMS.common.taglib
* 文 件名: PaginatedBean.java
* 版 权:
* 描 述: 封装了分页组件使用的JavaBean
* 修 改 人:
* 修改时间:
* 跟踪单号:
* 修改单号:
* 修改内容:
*/
package com.coship.dhm.portalMS.common.taglib;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.coship.dhm.portalMS.common.util.PageList;
/**
*
* 分页组件的JavaBean
*
* @author
* @version
* @since
*/
public class PaginatedBean implements Serializable {
/**
* 序列ID
*/
private static final long serialVersionUID = -5437380701828731946L;
/**记录总数*/
private int totalRows = 0;
/**总页数*/
private int totalPages = 0;
/**每页显示的记录数*/
private int pageSize = 10;
/**当前页*/
private int currentPage = 1;
/**请求的url*/
private String url;
/**查询字符串*/
private String queryString;
/**分页标签的ID号*/
private String id;
/**分页的记录数*/
private PageList<Object> pageList;
/**隐藏域数*/
private Map<String, String> hiddenParams;
/**每页显示大小的下拉框*/
private List<String> pageSelected;
/**用于页面显示“每页”的标签说明*/
private String pageSizeLabel;
/**用于页面显示“总共”的标签说明*/
private String totalRowlLabel;
/**用于页面显示“页数”的标签说明*/
private String totalPagesLabel;
/**用于页面显示“条”的标签说明*/
private String pageSizeLabelPostfix;
/**用于页面显示“转到”的标签说明*/
private String jumpLabel;
/**用于页面根据语言选择图片*/
private String language;
public PaginatedBean() {}
public PaginatedBean( String id, PageList<Object> pageList, String url,String language ) {
if ( pageList != null ) {
this.pageList = pageList;
this.totalPages = pageList.getTotalPages();
this.totalRows = pageList.getTotalRows();
this.pageSize = pageList.getPageSize();
this.currentPage = pageList.getCurrentPage();
} else {
this.pageList = new PageList<Object>();
}
this.id = id;
this.url = url;
this.language = language;
this.hiddenParams = new HashMap<String, String>();
}
public int getTotalRows() {
return totalRows;
}
public void setTotalRows(int totalRows) {
this.totalRows = totalRows;
}
public int getTotalPages() {
return totalPages;
}
public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public PageList<Object> getPageList() {
return pageList;
}
public void setPageList(PageList<Object> pageList) {
this.pageList = pageList;
}
public Map<String, String> getHiddenParams() {
return hiddenParams;
}
public void setHiddenParams(Map<String, String> hiddenParams) {
this.hiddenParams = hiddenParams;
}
public List<String> getPageSelected() {
return pageSelected;
}
public void setPageSelected(List<String> pageSelected) {
this.pageSelected = pageSelected;
}
public String getPageSizeLabel() {
return pageSizeLabel;
}
public void setPageSizeLabel(String pageSizeLabel) {
this.pageSizeLabel = pageSizeLabel;
}
public String getTotalRowlLabel() {
return totalRowlLabel;
}
public void setTotalRowlLabel(String totalRowlLabel) {
this.totalRowlLabel = totalRowlLabel;
}
public String getPageSizeLabelPostfix() {
return pageSizeLabelPostfix;
}
public void setPageSizeLabelPostfix(String pageSizeLabelPostfix) {
this.pageSizeLabelPostfix = pageSizeLabelPostfix;
}
public String getJumpLabel() {
return jumpLabel;
}
public void setJumpLabel(String jumpLabel) {
this.jumpLabel = jumpLabel;
}
public String getTotalPagesLabel() {
return totalPagesLabel;
}
public void setTotalPagesLabel(String totalPagesLabel) {
this.totalPagesLabel = totalPagesLabel;
}
public String getQueryString() {
return queryString;
}
public void setQueryString(String queryString) {
this.queryString = queryString;
}
public String getLanguage()
{
return language;
}
public void setLanguage(String language)
{
this.language = language;
}
}
templates/paginated_zh_CN.ftl
<#if page.totalPages != 0 >
<form action="${page.url}" method="post" id="page_queryActionForm_${page.id}" οnsubmit="return paginated_form_submit_${page.id}(this, ${page.id});">
<#list page.hiddenParams.keySet() as key>
<#assign item = page.hiddenParams[key]>
<input type="hidden" name="${key}" value="${item}" />
</#list>
<div class="right">
<img src="../images/in_r.jpg" width="5" height="30" />
</div>
<div class="page">
<div id="paginated_total_page_id" style="display:none;"> ${page.totalPagesLabel}${page.currentPage?c}/${page.totalPages?c}</div>
<div>
<#if page.currentPage == page.totalPages>
<#if page.totalPages == 1>
<a href="#" class="act1" disabled onClick="javascript:window.event.returnValue=false;"><<</a>
<a href="#" class="act1" disabled onClick="javascript:window.event.returnValue=false;"><</a>
<div class="ft">${page.currentPage?c}</div>
<a href="#" class="act1" disabled>></a>
<a href='${page.url}?${page.queryString}¤tPage=1&pageSize=${page.pageSize}' class="act1" disabled>>></a>
<#else>
<a href='${page.url}?${page.queryString}¤tPage=1&pageSize=${page.pageSize}' class="act"><<</a>
<a href="${page.url}?${page.queryString}¤tPage=${page.currentPage-1}&pageSize=${page.pageSize}" class="act"><</a>
<div class="ft">${page.currentPage?c}</div>
<a href="#" class="act1" disabled onClick="javascript:window.event.returnValue=false;">></a>
<a href="#" class="act1" disabled onClick="javascript:window.event.returnValue=false;">>></a>
</#if>
<#else>
<#if page.currentPage == 1 >
<a href="#" class="act1" disabled onClick="javascript:window.event.returnValue=false;"><<</a>
<a href="#" class="act1" disabled onClick="javascript:window.event.returnValue=false;"><</a>
<div class="ft">${page.currentPage?c}</div>
<a href="${page.url}?${page.queryString}¤tPage=${page.currentPage+1}&pageSize=${page.pageSize}" class="act">></a>
<a href='${page.url}?${page.queryString}¤tPage=${page.totalPages}&pageSize=${page.pageSize}' class="act">>></a>
<#elseif page.currentPage == page.totalPages>
<a href='${page.url}?${page.queryString}¤tPage=1&pageSize=${page.pageSize}' class="act"><<</a>
<a href="${page.url}?${page.queryString}¤tPage=${page.currentPage-1}&pageSize=${page.pageSize}" class="act"><</a>
<div class="ft">${page.currentPage?c}</div>
<a href="#" class="act1" disabled onClick="javascript:window.event.returnValue=false;">></a>
<a href="#" class="act1" disabled onClick="javascript:window.event.returnValue=false;">>></a>
<#else>
<a href='${page.url}?${page.queryString}¤tPage=1&pageSize=${page.pageSize}' class="act"><<</a>
<a href="${page.url}?${page.queryString}¤tPage=${page.currentPage-1}&pageSize=${page.pageSize}" class="act"><</a>
<div class="ft">${page.currentPage?c}</div>
<a href="${page.url}?${page.queryString}¤tPage=${page.currentPage+1}&pageSize=${page.pageSize}" class="act">></a>
<a href='${page.url}?${page.queryString}¤tPage=${page.totalPages}&pageSize=${page.pageSize}' class="act">>></a>
</#if>
</#if>
</div>
<div>${page.jumpLabel}<input type="text" name="currentPage" value="${page.currentPage?c}" size="2" class="input" id="page_currentPage_${page.id}"/></div>
<div>
<input type="image" src="../images/lisure_${page.language}.jpg" class="but" id="page_queryActionButton_${page.id}" οnclick="paginated_button_submit_${page.id}(this, ${page.id});"/>
</div>
</div>
<div class="page">
<div>${page.pageSizeLabel}</div>
<div id="con_psbox">
<select class="page_selectbox" name="pageSize" id="paginated_pageSize_${page.id}" οnchange="paginated_pageSize_change_${page.id}( this, ${page.id} );">
<#list page.pageSelected as pageSize>
<option value="${pageSize}" <#if pageSize?eval == page.pageSize>selected="selected"</#if>>${pageSize}</option>
</#list>
</select> <span>${page.pageSizeLabelPostfix}</span>
</div>
</div>
<div class="page">
<div>${page.totalRowlLabel}${page.totalRows?c}${page.pageSizeLabelPostfix}/${page.totalPages?c}${page.totalPagesLabel}</div>
</div>
</form>
<script type="text/javascript" src="../js/dialogShow.js"></script>
<script type="text/javascript">
function isNaturalNumber( value ) {
if ( value == null ) {return false;}
if ( value == '' || value == null ) {return false;}
if (/^[0-9]+$/.test( value ) && ( value > 0)) {
return true;
} else {
return false;
}
}
function paginated_pageSize_change_${page.id}(select,id) {
$( "#page_currentPage_" + id ).val(1);
var form = $("#page_queryActionForm_" + id);
$( form ).submit();
}
function paginated_button_submit_${page.id}( button,id ) {
var input = $( "#page_currentPage_" + id ).val();
var form = $("#page_queryActionForm_" + id);
if ( !isNaturalNumber (input) ) {
showText('信息提示','当前页应该是正整数,请重新输入!',400,200,0,false);
form[0].onsubmit = function(){ return false; };
} else {
var div = $( button ).parent().prev();
var totalLabel = div.prev().prev().html();
var totalPage = totalLabel.split( "/" )[1];
if ( parseInt(input) > parseInt(totalPage) ) {
showText('信息提示','当前页不能大于总页数,请重新输入!',400,200,0,false);
form[0].onsubmit = function(){ return false; };
} else {
form[0].onsubmit = function(){ return true; };
}
}
}
function paginated_form_submit_${page.id}( f, id ) {
var input = $( "#page_currentPage_" + id ).val();
var form = $( f );
if ( !isNaturalNumber (input) ) {
showText('信息提示','当前页应该是正整数,请重新输入!',400,200,0,false);
return false;
} else {
var div = $( "#paginated_total_page_id" );
var totalLabel = div.html();
var totalPage = totalLabel.split( "/" )[1];
if ( parseInt(input) > parseInt(totalPage) ) {
showText('信息提示','当前页不能大于总页数,请重新输入!',400,200,0,false);
return false;
} else {
return true;
}
}
}
</script>
<#else>
<div class="right">
<img height="30" width="5" src="../images/in_r.jpg"/>
</div>
</#if>