默认设置会在过滤器字段中的每次击键时更新表。我只想在用户输入内容并按回车键时显示结果列表。
答案 0 :(得分:2)
对于全局过滤器,您可以使用event.keyCode == 13
<f:facet name="header">
<p:outputPanel>
<h:outputText value="Search all fields:" />
<p:inputText id="globalFilter" onkeyup="if (event.keyCode == 13) {
carsTable.filter(); }" style="width:150px" />
</p:outputPanel>
</f:facet>
答案 1 :(得分:2)
您尚未说明您的版本,但自PF 3.2起,您可以在enter
上使用filterEvent
事件。早期版本,您可以使用this javascript workaround
答案 2 :(得分:1)
重要的是要强调filterEvent是dataTable标签的一个属性,例如, javascript workaround已在列标记中显示,但这样做效果不佳。 您可以这样使用:
<p:dataTable id="companyTable"
value="#{fooManager.foo}" var="foo"
filterEvent="enter">
<p:column filterBy="#{foo.name}" >
<h:outputText value="#{foo.name}" />
</p:column>
</p:dataTable>
或者您可以使用filterEvent =“Keyup”,这是此属性的默认值,并且在发送ajax过滤器查询(默认值为300毫秒)之前1000毫秒内定义的filterDelay,如下所示:
<p:dataTable id="companyTable"
value="#{fooManager.foo}" var="foo"
filterEvent="keyup"
filterDelay="1000">
<p:column filterBy="#{foo.name}" >
<h:outputText value="#{foo.name}" />
</p:column>
</p:dataTable>
我希望能帮助你。
答案 3 :(得分:0)
您现在可以使用相应的列选项。最简单的数据列示例是:
p:column filterEvent="enter"