【问题标题】:Primefaces datatable filter : set a filter from the xhtml pagePrimefaces 数据表过滤器:从 xhtml 页面设置过滤器
【发布时间】:2019-03-04 13:30:55
【问题描述】:

我想使用相同的数据表和不同的过滤器创建几个 xhtml 页面。

例如会有一个 men.xhtml 和 women.xhtml 页面来自服务调用 getHumans; 我希望在不输入的情况下自动应用过滤器,并且我不想创建额外的视图,因为在我看来很多东西都是徒劳的。

我试过这些代码没有成功

<p:column filterBy="human.gender" filteredValue="men"
                            headerText="Gender" style="width: 150px;">

                            <h:outputText value="#{human.gender}" />
                        </p:column>

我也试过添加这个:

<p:dataTable id="gender" var="gender" filterValue="men" ...

但是没用

知道我能做什么吗?

【问题讨论】:

    标签: filter primefaces datatable primefaces-datatable


    【解决方案1】:

    如果启用过滤,您应该通过数据表的filterValue 属性提供一个列表来保留过滤后的数据。您可以使用带有流的表达式语言 () 来限制从 xhtml 中的 bean 获得的列表:

    <p:dataTable value="#{yourBean.humans.stream().filter(human -> human.getGender().equals('men')).toList()}" ...>
    

    您需要 EL 3.0 或更高版本才能正常工作。

    【讨论】:

    • 或者使用惰性数据模型让您拥有更多控制权
    • @Kukeltje 当然,我也更喜欢在后端做,但问题是在 xhtml 中做。
    猜你喜欢
    • 2016-12-30
    • 2014-01-04
    • 1970-01-01
    • 2013-03-05
    • 2013-08-01
    • 2012-11-01
    • 1970-01-01
    • 2017-01-21
    • 2012-08-24
    相关资源
    最近更新 更多