PrimeFaces PickList:两个字符串字段过滤器

时间:2013-07-05 14:38:35

标签: primefaces filter picklist

我想知道是否可以使用两个字段过滤器和一个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>

由于

2 个答案:

答案 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手动触发任何过滤。