4

如何使用“清除”命令按钮清除 PrimeFaces DataTable 中的全局过滤器?我在 PrimeFaces 论坛上发现了类似的问题,但看起来没有回答 - 那里可以找到的提示对我没有帮助。我试图解决问题如下:

<p:dataTable id="myTab" widgetVar="myTabWidgetVar" var="obj"
    value="#{managedBean.objects}">
    <f:facet name="header">
        <p:outputPanel>
            <h:outputText value="Search all fields:"/>
            <p:inputText id="globalFilter" onkeyup="myTabWidgetVar.filter()"/>
        </p:outputPanel>
    </f:facet>
</p:dataTable>
<p:commandButton value="Clear" onclick="myTabWidgetVar.clearFilters();"
    update="@form"/>

它仅清除列过滤器。全局过滤器中的值仍不清楚。你能帮我解决问题吗?

4

4 回答 4

6

方法如下:

$("#someFormId\\:myTab\\:globalFilter").val("").keyup();//if you got `prependId="false" , than omit the `someFormId\\:` part from the selector and leave only `myTab\\:globalFilter`

这将用空字符串填充您的过滤器并触发 keyup 事件,从而清除您的过滤器并清除表的过滤器状态

如果您只想清除过滤器而不重置应用于您的表的过滤器,请使用

$("#someFormId\\:myTab\\:globalFilter").val("");

如果您想在 commandButton 中使用此代码,则无需使用 ajax ( update...)

onclick这样使用

<p:commandButton value="Clear" 
onclick="$('#someFormId\\:myTab\\:globalFilter').val('').keyup(); return false;"/>

使用return false;所以按钮不会提交您的页面...

于 2013-02-13T22:44:04.930 回答
3
<pdataTable  widgetVar="departments" />
<p:commandButton value="#{lang:text('Add department')}"
                 id="....."
                 actionListener="....."
                 update="@form"
                 oncomplete="PF('departments').clearFilters()"
                 styleClass="........."/>

它适用于我的主要面孔

于 2014-11-05T07:23:58.293 回答
2

Primefaces 数据表具有“filteredValue”选项。假设您设置了过滤值,例如;过滤值=“#managedBean.filteredObjects}”。

在您的情况下,filteredObjects 具有与数据表的值相同的类型,即“managedBean.objects”。在加载数据表之前,将filteredObjects 变量设置为NULL。它会解决你的问题。

于 2013-05-21T14:07:35.120 回答
0

上述解决方案在我的情况下不起作用。我尝试了remoteCommand这里解释的Primefaces Datatable doesn't reset filter,但这也不起作用。

我用 ajax 行为事件修复了它。

<p:dialog>
    <p:ajax event="open" update="myTableId" onstart="PF('myTable').clearFilters();" />

    <p:dataTable id="myTableId" widgetVar="myTable" ... >
        ...
    </p:dataTable>
</p:dialog>
于 2022-02-04T11:05:17.727 回答