您的位置:首页 > 移动开发 > Objective-C

[原创]displaytable分页跳到到第N页,displaytable分页跳转页码,displaytable分页跳转到输入的页码

2011-03-21 03:12 176 查看
     经过了若干google之后,总结是:displaytable并没有提供根据输入的页码来到达指定页的功能。

网上有些介绍的是一个直接的输入框,这样抛弃了其它搜索条件不够完美,

跳转页码也应该带着搜索条件跳的!!!

所以只能自己动手了,先贴出效果图为证

 

 



 

 

 跟踪了一通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}页.


 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息