我想知道是否可以使用两个字段过滤器和一个primefaces选项列表。 我尝试了这个,但它不起作用。我想过滤名字和名字,但它们分为两个不同的领域。
<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>
由于
答案 0 :(得分:2)
事实上,我认为这是有可能的,因为它正在使用上面发布的代码。但是,Javascript方法很容易设置两个字段,所以我可以快速完成。谢谢你的建议。
它第一次没有工作的原因是,Primefaces中存在一个错误选项列表过滤器,并且它没有正式修补。无论我输入什么值,过滤模式都保持在开始状态。
所以我的选项列表仍然是
<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
答案 1 :(得分:-1)
默认组件无法做到这一点。但是,您可以创建自定义过滤器(从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
}
当然,您也可以通过扩展primefaces选项列表或创建两个单独的inputtext字段来创建自定义组件,并使用javascript / jquery手动触发任何过滤。