【问题标题】:filterValue for a dataTable in Primefaces 5.3 always nullPrimefaces 5.3 中数据表的 filterValue 始终为空
【发布时间】:2017-11-21 10:28:29
【问题描述】:

我对使用 primefaces 还很陌生,有一点疑问(已经在 primefaces 论坛上问过,但目前没有回复)

是否可以在 xls dataExporter 上获取过滤器值,更具体地说是在类似后处理器的方法上?

我可以通过在dataTable上声明filteredValue来获得过滤后的值。但是 filterValue 变量没有按预期工作。

我在我的数据表上都这样声明:

filteredValue="#{parqueController.parqueListFiltered}" filterValue="#{parqueController.parqueListFilter}"

当我过滤值时,Bean 类上的 setter 仅针对过滤后的值触发,使过滤器值始终为空。

我最终在 PrimeFaces 上找到了这个帖子:

https://code.google.com/archive/p/primefaces/issues/5361

在 3.5 版上报告了该问题,并且看起来,它已针对更高版本进行了更正/更改。我使用的是 5.3 版

认为这可能是一个错误?回归?还是我只是在这里遗漏了一点并且做错了什么?

最好的问候,谢谢!

米格尔·帕尔梅罗

【问题讨论】:

    标签: java jsf primefaces


    【解决方案1】:

    在发现这很奇怪之后.. 下载 Primefaces 源.. 调试.. 得出的结论是在列上声明了过滤器值(如果我没有分心会更快地注意到它.. ^^)

      <p:column style="width: 20%" filterBy="#{parque.id}" sortBy="#{parque.id}" filterValue="#{parqueController.parqueListFilter}" filterMatchMode="contains">
    

    之后,该值作为每列的单独字符串返回,空表示无值,值表示..值^^。在这个阶段,根据需要处理它。我结束了创建一个包含所有过滤器值的列表。在 excel 后处理器上,总是从列表中获取最后 4 个值并迭代这 4 个值,知道我的列是固定的。

    我的意思是,在我在 parqueListFilter 中获得过滤后的值之后,filteredValue=#{classController.variable} 指向您希望值去的位置,我这样做了:

    List<String> tail = parqueListFilters.subList(Math.max(parqueListFilters.size() - 4, 0), parqueListFilters.size());
    

    但在前端区域发生过滤后,仍应在应用程序的后端填充该变量。

    public List<String> parqueListFilters = new ArrayList<String>() ;
    
    public String getParqueListFilter() {
        return parqueListFilter;
    }
    
    public void setParqueListFilter(String parqueListFilter) {
        this.parqueListFilter = parqueListFilter;
        parqueListFilters.add(parqueListFilter);
    }
    

    【讨论】:

    • 我在使用 PF 6.2 时遇到了同样的问题,我在 p:dataTable 属性集上有一个 List&lt;EntityClass&gt; 用于 filteredValue。你能显示一些代码吗?抱歉,我不明白您所说的“创建 List”是什么意思。
    • 该死的,这是很久以前的事了..现在甚至不使用这种技术了..但是!刷新了一下,实际上有我的代码!所以^^
    • 用我发现有用的一些代码更新了答案,希望对您有所帮助:)
    猜你喜欢
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 2013-04-03
    • 2023-02-06
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    相关资源
    最近更新 更多