我正在尝试使用PrimeFaces中的全局过滤器来实现逗号分隔的关键字搜索。
如果用户在全局搜索中输入word1,word2
,则应返回所有具有word1
和word2
的行。到目前为止,我无法在PrimeFaces中找到用于全局搜索的预定义多字搜索功能。全局搜索仅适用于单个关键字。例如:仅当用户键入word1
或word2
时,搜索才会返回结果。
好像PrimeFaces使用客户端API filter()进行全局搜索。有没有一种方法可以使用多个关键字进行搜索?
<p:dataTable id="dwg" widgetVar="tblDwgDtl" var="dwgDtl"
value="#{dwgCtrlr.dwgs} sortMode="multiple" scrollable="true"
styleClass="bsa-drawing" rows="25" resizableColumns="true">
<f:facet name="header">
<p:panelGrid styleClass="ui-panelgrid-blank">
<p:row>
<p:column colspan="6">
<p:inputText id="globalFilter"
onkeyup="PF('tblDwgDtl').filter()"
placeholder="#{msg['searchAllFields.text']}" />
</p:column>
</p:row>
</p:panelGrid>
</f:facet>
答案 0 :(得分:3)
在PrimeFaces 7.1中,您可以使用globalFilterFunction
的{{1}}属性来实现自定义全局过滤器。参见https://primefaces.github.io/primefaces/7_1/#/components/datatable?id=filtering
您可以做的是replace the data table renderer with a custom one。然后,in there,用自定义版本替换p:dataTable
。因此,您需要扩展FilterFeature
和take care of the multiple keywords there。