Rich:Columns - FilterBy

Posted

技术标签:

【中文标题】Rich:Columns - FilterBy【英文标题】: 【发布时间】:2010-12-28 00:24:57 【问题描述】:

早上好!!

我有一个动态数据表,我正在使用 Richfaces 的列,但是当我将值分配给 FilterBy 时,它不起作用。 谁能帮我? 糟糕的是我的代码..

<rich:dataTable id="dtAtendimento" value="#CadastroAtendimentoTecnico.listaAtendimento" var="atendimento">
    <rich:columns index="index" value="#CadastroAtendimentoTecnico.listaCampos" var="column" filterBy="#column.nomeAtributo" filterEvent="onKeyUp">
        <f:facet name="header">
            <h:outputText value="#column.label"/>
        </f:facet>
        <h:outputText value="#atendimento[column.nomeAtributo]"/>
    </rich:columns>
</rich:dataTable>

【问题讨论】:

作为旁注 - 建议在您的代码中使用英语。 对不起,我是巴西人,我会尽我所能提供翻译 【参考方案1】:

我遇到了另一个可能导致问题的 filterBy 问题。我们通过过滤器处理处于特定业务状态(活动、过期等)的实体,而不是其他状态的实体。实体的状态与实际过滤器值无关。

当我使用 filterMethod 并在 backing bean 上进行过滤时,它工作正常。事实证明,filterBy 在我使用 ajaxSingle 的 filterMethod 的 inputText 上提交了整个表单。当您总共提交该表单时验证失败,但验证错误被吞下。

【讨论】:

【参考方案2】:

据我所知,您在 filterBy 中使用了错误的属性。您想使用嵌套来指定在何处查找要排序的元素。 #atendimento(column.nomeAtributo) 之类的东西,但我不在可以测试它的地方。这本质上是评估列的名称,然后从行对象atendimento 中调用具有相同名称的getter。抱歉,如果嵌套语法不起作用,但我认为嵌套是您的答案。

如果 #atendimento[column.nomeAtributo] 可以打印该值,那么这就是您想要的,但我只希望它在 nomeAtributo 是用于数组引用的整数时才有效。

【讨论】:

【参考方案3】:

尝试将sortBy="#column.nomeAtributo"sortOrder 添加到rich:columns 它将起作用。 我才知道我们在早期版本中有这样的问题。 请尝试 RF 3.2.1。我认为它应该可以解决问题。

【讨论】:

没有工作我看到的例子,列的ID与索引连接,这是必要的吗?

以上是关于Rich:Columns - FilterBy的主要内容,如果未能解决你的问题,请参考以下文章