4

默认设置会在过滤器字段中的每次击键时更新表格。我只想在用户输入内容并按回车时显示结果列表。

4

4 回答 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 回答