Богатый: столбцы - фильтби
-
20-09-2019 - |
Вопрос
Доброе утро!!
У меня есть динамичный данных, и я использую столбцы Richfaces, но когда я назначаю значение фильтру, оно не работает. Может кто-нибудь помочь мне? Горе - мой код ..
<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)}
, но я не в том месте, где я могу проверить это. По сути, это оценивает имя столбца, а затем вызывает Getter с тем же именем с вашего объекта строки atendimento
. Анкет Извините, если синтаксис гнездования не работает, но я думаю, что гнездование - ваш ответ.
Если #{atendimento[column.nomeAtributo]}
Работает, чтобы напечатать значение, то это то, что вы хотите, но я бы ожидал, что она будет работать только в том случае, если Nomeatributo является целым числом для ссылки на массив.
Я столкнулся с другой проблемой с фильтром, которая может вызвать проблемы. У нас был фильтр, работавший над организациями в определенном бизнесе (активном, истекшем, и т. Д.), Но не в других. Состояние сущности не имело никакого отношения к фактическому значению фильтра.
Когда я использовал Filtermethod и сделал фильтрацию на боба, он работал нормально. Оказалось, что Filterby представляет всю форму, находясь на моем входном контексте для Filtermethod, который я использовал Ajaxsingl. Проверка не удалась, когда вы подали эту форму в общей сложности, но ошибка проверки была проглочена.