默认设置会在过滤器字段中的每次击键时更新表格。我只想在用户输入内容并按回车时显示结果列表。
问问题
5530 次
4 回答
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>
于 2012-11-13T12:06:41.607 回答
2
您还没有说明您的版本,但您可以从 PF 3.2 开始使用该enter
事件。filterEvent
早期版本,您可以使用此 javascript 解决方法
于 2012-11-14T04:54:50.800 回答
1
需要强调的是 filterEvent 是 dataTable 标签的一个属性,在这个例子中,javascript 的解决方法已经显示在 column 标签中,但这不是很好。你可以这样使用:
<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" 这是该属性的默认值,并且 filterDelay 在发送 ajax 过滤查询之前定义为 1000 毫秒(默认为 300 毫秒),如下例所示:
<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>
我希望能帮助你。
于 2013-04-26T21:51:05.487 回答
0
您现在可以使用适当的列选项。数据列最简单的例子是:
p:column filterEvent="enter"
于 2014-07-08T08:56:59.170 回答