[原创]displaytable分页跳到到第N页,displaytable分页跳转页码,displaytable分页跳转到输入的页码
2011-03-21 03:12
176 查看
经过了若干google之后,总结是:displaytable并没有提供根据输入的页码来到达指定页的功能。
网上有些介绍的是一个直接的输入框,这样抛弃了其它搜索条件不够完美,
跳转页码也应该带着搜索条件跳的!!!
所以只能自己动手了,先贴出效果图为证
跟踪了一通displaytable1.2的源码之后,
确诊在Pagination.java的getFormattedBanner函数里把输入框和触发输入框的事件追加到搜索条件之后即可,
下面直接贴出代码,有兴趣的读者对比一下源码就知道改动了。
配套的属性文件修改:displaytag_zh_CN.properties
网上有些介绍的是一个直接的输入框,这样抛弃了其它搜索条件不够完美,
跳转页码也应该带着搜索条件跳的!!!
所以只能自己动手了,先贴出效果图为证
跟踪了一通displaytable1.2的源码之后,
确诊在Pagination.java的getFormattedBanner函数里把输入框和触发输入框的事件追加到搜索条件之后即可,
下面直接贴出代码,有兴趣的读者对比一下源码就知道改动了。
public String getFormattedBanner(String numberedPageFormat, String numberedPageSelectedFormat, String numberedPageSeparator, String fullBanner) { StringBuffer buffer = new StringBuffer(100); // numbered page list Iterator pageIterator = this.pages.iterator(); while (pageIterator.hasNext()) { // get NumberedPage from iterator NumberedPage page = (NumberedPage) pageIterator.next(); Integer pageNumber = new Integer(page.getNumber()); String urlString = ((Href) this.href.clone()).addParameter(this.pageParam, pageNumber).toString(); // needed for MessageFormat : page number/url Object[] pageObjects = {pageNumber, urlString}; // selected page need a different formatter if (page.getSelected()) { buffer .append(new MessageFormat(numberedPageSelectedFormat, properties.getLocale()).format(pageObjects)); } else { buffer.append(new MessageFormat(numberedPageFormat, properties.getLocale()).format(pageObjects)); } // next? add page separator if (pageIterator.hasNext()) { buffer.append(numberedPageSeparator); } } // String for numbered pages String numberedPageString = buffer.toString(); // Object array // {0} full String for numbered pages // {1} first page url // {2} previous page url // {3} next page url // {4} last page url // {5} current page // {6} total pages String urlString = ((Href) this.href.clone()).addParameter(this.pageParam, this.currentPage).toString(); String onkeyup="javascript:$(this).next().attr('href',$(this).next().attr('href').replaceAll(/"/'/"+this.lang+/"/'/",/"/'/"+this.value+/"/'/"));this.lang=this.value;"; urlString="<input lang="+this.currentPage+" class=number size=3 type=text onkeyup="+onkeyup+" value="+this.currentPage+" /><a href="+urlString+" onclick='$(this).next().val($(this).prev().val())'>跳转</a>"; Object[] pageObjects = { numberedPageString, ((Href) this.href.clone()).addParameter(this.pageParam, getFirst()), ((Href) this.href.clone()).addParameter(this.pageParam, getPrevious()), ((Href) this.href.clone()).addParameter(this.pageParam, getNext()), ((Href) this.href.clone()).addParameter(this.pageParam, getLast()), this.currentPage, this.isLast() ? this.currentPage : this.lastPage }; // this.lastPage is null if the last page is displayed // return the full banner return new StringBuilder().append("<span class=pagelinks>").append(MessageFormat.format(fullBanner, pageObjects)).append(urlString).append("</span>").toString(); }
配套的属性文件修改:displaytag_zh_CN.properties
paging.banner.full=[<a href="{1}" mce_href="{1}">首页</a>/<a href="{2}" mce_href="{2}">上一页</a>]{0}[<a href="{3}" mce_href="{3}">下一页</a>/<a href="{4}" mce_href="{4}">尾页</a>] ,共{6}页. paging.banner.first=[第一页/上一页] {0} [<a href="{3}" mce_href="{3}">下一页</a>/<a href="{4}" mce_href="{4}">最后页</a>] ,共{6}页. paging.banner.last=[<a href="{1}" mce_href="{1}">第一页</a>/<a href="{2}" mce_href="{2}">上一页</a>] {0} [下一页/最后页] ,共{6}页.
相关文章推荐
- jQuery DataTables插件分页允许输入页码跳转
- 在WEB页面上输入跳转页码
- jQuery DataTables插件分页允许输入页码跳转
- PHP+MySQL实现输入页码跳转到指定页面功能示例
- dataTables页码后面添加可输入页码跳转
- PHP+MySQL 输入页码跳转到指定页
- jQuery DataTables插件分页允许输入页码跳转
- 在分页中控制由用户输入页码来跳转的JS函数
- datatable的自定义配置-输出结果&排序&跳转指定页码
- 用回车键实现MFC对话框中TAB键控制输入焦点在控件中跳转的效果
- 从浏览器输入meituan地址到跳转的过程发生了什么
- (原创)shell 编程:根据从键盘输入的学生成绩,显示相应的成绩标准,也可以同时输入多个成绩,最多为5 个,以空格分隔。
- 日期光标控件 输入完成后自动跳转 默认跳到日期栏
- javascript 一个文本框输入完毕后自动跳转到下一个文本框的方法
- 在Ubuntu登陆界面输入密码之后,黑屏一闪后,又跳转到登录界面
- 输入非登录页面,转到登录页面,阻止用户不登录而访问其他页面【原创】
- cmd中输入cd 目录跳转问题
- 教女朋友学Python3(二)简单的输入输出及内置函数查看[原创]_python_脚本之家
- Ubuntu12.04 图形界面登录输入正确密码后无法进入桌面又跳转到登录界面
- bootstrap下拉分页样式 带跳转页码