Primefaces p:datatable - 更改{CurrentPageReport}

4
我正在搜索,但是找不到任何解决我的问题的东西。我使用一个DataTable(Primefaces),想知道如何更改一些字段的语言/输出。
更具体地说,我想要更改PaginatorTemplate中的{CurrentPageReport}。现在它看起来非常简单:(0 of 100)。我希望它像这样(第0页,共100页,500个结果)。
我尝试了很多方法,但都没有成功。最后我做的是:
function change_text () {
    $(".ui-paginator-current").each (function() {
        $(this).html("Simple test");
    });     
}

$(".ui-icon").each(
            function(index) {
                $( this ).bind ("click",function(){ change_text (); });
            }
    );

(ui-icon是表格中每个按钮的一部分。)

但是,这并不是真正有效的,如您所见:-) 这个解决方案只起到了一半的作用。当我按下一个按钮(下一页,上一页)时,.ui-paginator-current字段中的文本会更改回默认模板。 我知道...原因是因为该字段也被重新加载。

我还尝试更改Primefaces代码,但找不到正确的代码区域。

我正在使用JSF 2.0.3和PrimeFaces 2.2.1。 我该怎么解决我的问题?我能从bean中加载paginatorTemplate吗? 如果我能将文本从“0 of 100”更改为“0 aus 100”(德语),那就真的帮了我。

希望你们能像每次我遇到问题时一样帮助我。

Ioannis K.

2个回答

23

找到了:

<p:dataTable currentPageReportTemplate="{currentPage} #{loc.of} {totalPages}" /> 

对于那些感兴趣的人 :-)

*现在我有这样一个:

paginatorTemplate="{FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"

currentPageReportTemplate="(Entries: {startRecord} - {endRecord} of {totalRecords}, Page: {currentPage}/{totalPages})"
希望这能帮到你们!

3
你也可以这样做:currentPageReportTemplate="#{msg.PAGE_LABEL}",其中 #{msg.PAGE_LABEL} 是存储在英语资源包(MessageResources_en.properties)中的 PAGE_LABEL={currentPage} of {totalPages}。对于其他语言,只需翻译单词 'of' 并将每个翻译存储在其单独的资源包中。例如,对于法语资源包(MessageResources_fr.properties),请执行以下操作:PAGE_LABEL={currentPage} sur {totalPages}。希望这能帮助未来遇到此问题的任何人。 - ChuongPham
@Ioannis:那实际上非常有帮助! - Mohammad Dehghan

0

我还没有测试过,但是PrimeFaces确实支持德语区域设置。您是否尝试在bean中设置区域设置,以查看“0 of 100”是否更改为“0 aus 100”?

FacesContext.getCurrentInstance().getViewRoot().setLocale(new Locale("de"));

是的,我认为我做到了。我们的项目支持多语言,并且它会自动检查用户浏览器中设置的默认语言,通过faces-config.xhtml进行设置。FacesContext.getCurrentInstance().getViewRoot().setLocale()会自动执行并且有效。当我将我的浏览器语言更改为德语时,整个网站都是德语,但报告页面不是。 - Ioannis K.
1
Ioannis K.:你可能想把它作为答案添加并接受,这样解决方案对其他人来说更容易找到。 - Jörn Horstmann
你是对的,Jörn。我现在做到了。我只需要学习这里的工作原理。 - Ioannis K.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接