У меня есть p:datatable
, который заполняется списком доменов объектовPrimefaces Datatable, фильтр на локализованном перечислении значений
Каждый объект домена имеет значение, которая привязана к enum PrivateIndustry
: P, K или N, что соответствует значение базы данных.
эти значения затем представлены в p:dataTable
через локализацию, labels_LOCALE.properties
, чтобы сделать их доступными для человека, с синтаксисом com.package.PrivateIndustry.P/K/N
.
Это работает хорошо для удобства чтения, но когда я использую PF('dataTableId').filter()
фильтровать DataTable, я не могу фильтровать для локализованных значений, только значения чистых перечислений (т.е. P, K или N)
именно:
<p:column headerText="#{labels.header}"
filterBy="#{domainobject.privateIndustry}" filterStyle="display: none"
sortBy="#{domainobject.privateIndustry}" >
<h:outputText value="#{domainobject.privateIndustry}"/>
</p:column>
Я могу исправить это, заполнив имена в объекте домена как String, используя ResourceBundle.getString("com.package.PrivateIndustry...")
, но это кажется довольно ненужным и запутанным.
Можно ли разобрать filterBy=""
с лучшим значением или сделать PF().filter()
работать с данными на стороне клиента?
Вы всегда можете реализовать пользовательские фильтры ... См. Документы PF – Kukeltje