PrimeFaces PickList: фильтр двух строк

Вопрос:

Мне было интересно, возможно ли иметь фильтр с двумя полями с подборкой перьев. Я пробовал это, но он не работает. Я хотел бы фильтровать по имени и имени, но они находятся в двух разных полях.

<p:pickList value="#{bean.usersDualModel}" var="user"
itemValue="#{user}" itemLabel="#{user.firstname} #{user.name}"
converter="user" showSourceFilter="true" showTargetFilter="true"
filterMatchMode="contains" >

<p:column>
<h:outputText value="#{user.firstname} #{user.name}" />
</p:column>

</p:pickList>

благодаря

Лучший ответ:

Это невозможно при использовании компонента по умолчанию. Однако вы можете создать настраиваемый фильтр (пример, взятый из руководства Primefaces):

<p:pickList value="#{pickListBean.cities}" var="city" itemLabel="#{city}" 
    itemValue="#{city}" showSourceFilter="true" showTargetFilter="true
    filterMatchMode="custom" filterMatchMode="myfilter">
</p:pickList>

function myfilter(itemLabel, filterValue) {
//Filter for firstname or name
//return true or false
}

Конечно, вы также можете создать пользовательский компонент, расширив список выбора перфолей или создав два отдельных поля ввода текста и вручную обработав фильтрацию javascript/jquery.

Ответ №1

На самом деле, я думаю, это возможно, потому что он работает с кодом, который я написал выше. Тем не менее, метод Javascript легко настраивается с двумя полями, поэтому я мог бы сделать это быстро. Спасибо за предложение.

Причина, по которой он не работал в первый раз, — это ошибка в Primefaces для фильтра picklist, и он не исправлен официально. Режим фильтра оставался в startWith независимо от введенного значения.

Так что мой выборник по-прежнему

<p:pickList value="#{bean.usersDualModel}" var="user"
itemValue="#{user}" itemLabel="#{user.firstname} #{user.name}"
converter="user" showSourceFilter="true" showTargetFilter="true"
filterMatchMode="contains" > ...

И знаете, пользовательский патч знает. Вот ссылка отчета.

https://code.google.com/p/primefaces/issues/detail?id=5234

Оцените статью
TechArks.Ru
Добавить комментарий