看一下这里的“高级”示例:http://www.primefaces.org/showcase/ui/input/oneMenu.xhtml,我可以在我的oneMenu中的每个选项中有两列,但过滤只发生在项目的标签上。
我希望能够按其中任何一列进行过滤(与示例不同,我的两列都只包含文本,因此它们是可过滤的)。这种定制是可能的吗?
向两个<p:column>中的任何一个添加filter="true"似乎没有任何效果,而用于编写自定义过滤规则的实用程序:filterFunction似乎也只在标签上操作!
<p:outputLabel for="advanced" value="Advanced:" />
<p:selectOneMenu id="advanced" value="#{selectOneMenuView.theme}" converter="themeConverter" panelStyle="width:180px"
effect="fade" var="t" style="width:160px" filter="true" filterMatchMode="startsWith">
<f:selectItems value="#{selectOneMenuView.themes}" var="theme" itemLabel="#{theme.displayName}" itemValue="#{theme}" />
<p:column style="width:10%">
<h:outputText styleClass="ui-theme ui-theme-#{t.name}" />
</p:column>
<p:column>
<h:outputText value="#{t.displayName}" />
</p:column>
</p:selectOneMenu>发布于 2015-05-06 05:57:58
不,对不起,selectOneMenu不能这样做。您可以添加filterFunction,但在该函数中,您只能在标签上过滤客户端。
作为另一种选择,您可以使用PrimeFaces AutoComplete,它可以在服务器端搜索任何您想要的内容,还可以显示自定义内容。
发布于 2017-03-28 02:24:07
如果你写了<f:selectItems value="#{estadoParque.vehiculos}" var="v" itemValue="#{v}" itemLabel="#{v.placa} - #{v.marca}"/>,你就能做到
添加列itemLabel="#{v.placa} - #{v.marca}"的相同元素
<p:column headerText="Placa">
<h:outputText value="#{t.placa}" />
</p:column>
<p:column headerText="Marca">
<h:outputText value="#{t.marca}" />
</p:column>你的过滤器就会像filterMatchMode="contains"一样
它成功了!!
https://stackoverflow.com/questions/30061714
复制相似问题