gpt4 book ai didi

jsf - 如何清除 PrimeFaces DataTable 中的全局过滤器

转载 作者:行者123 更新时间:2023-12-04 06:18:50 24 4
gpt4 key购买 nike

如何使用“清除”命令按钮清除 PrimeFaces DataTable 中的全局过滤器?我找到了 similar question on PrimeFaces forum ,但看起来没有回答 - 人们可以在那里找到的提示对我没有帮助。我试图解决这个问题如下:

<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"/>

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

最佳答案

方法如下:

$("#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; 这样按钮就不会提交您的页面...

关于jsf - 如何清除 PrimeFaces DataTable 中的全局过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14863827/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com