リッチ:列-Filterby
-
20-09-2019 - |
質問
おはようございます!!
動的なデータテーブルがあり、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>
解決
追加してみてください sortBy="#{column.nomeAtributo}"
と sortOrder
に rich:columns
それが動作します。私たちは初期バージョンでそのような問題があることを知るようになりました。 RF 3.2.1をお試しください。そうでなければ問題を解決する必要があると思います。
他のヒント
私が見ることができるものから、あなたはフィルタービーで間違った属性を使用しています。ネストを使用して、ソートする要素を見つける場所を指定します。何かのようなもの #{atendimento(column.nomeAtributo)}
, 、しかし、私はそれをテストできる場所にいません。これが本質的に行うことは、列の名前を評価し、次にあなたの行から同じ名前を持つゲッターを呼び出すことです atendimento
. 。ネスティング構文が機能しない場合は申し訳ありませんが、ネストがあなたの答えだと思います。
もしも #{atendimento[column.nomeAtributo]}
値を印刷するために機能しますが、それはあなたが望むものですが、NomeAtributoが配列参照の整数である場合にのみ機能することを期待します。
問題を引き起こす可能性のあるFilterbyの別の問題に出くわしました。特定のビジネス状態(アクティブ、期限切れなど)でエンティティで作業するフィルターバイを使用していましたが、他のビジネスではそうではありませんでした。エンティティの状態は、実際のフィルター値とは何の関係もありませんでした。
Filtermethodを使用して、バッキングビーンでフィルタリングを行ったとき、それは正常に機能しました。 ajaxsingleを使用したFiltermethodの入力テキストでは、Filterbyがフォーム全体を提出することが判明しました。そのフォームを合計で送信したときに検証に失敗しましたが、検証エラーは飲み込まれました。