如何使用"Clear"CommandButton清除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"/>
Run Code Online (Sandbox Code Playgroud)
它仅清除列过滤器.全局过滤器中的值仍未清除.你能帮我解决一下这个问题吗?
方法如下:
$("#someFormId\\:myTab\\:globalFilter").val("").keyup();//if you got `prependId="false" , than omit the `someFormId\\:` part from the selector and leave only `myTab\\:globalFilter`
Run Code Online (Sandbox Code Playgroud)
这将使用空字符串填充过滤器并触发keyup事件,从而清除过滤器并清除表的过滤器状态
如果您只是想清除过滤器而不重置应用于您的表使用的过滤器
$("#someFormId\\:myTab\\:globalFilter").val("");
Run Code Online (Sandbox Code Playgroud)
如果要在commandButton中使用此代码,则无需使用ajax(update...)
只要使用onclick这样的
<p:commandButton value="Clear"
onclick="$('#someFormId\\:myTab\\:globalFilter').val('').keyup(); return false;"/>
Run Code Online (Sandbox Code Playgroud)
使用return false;这样按钮不会提交您的页面...
| 归档时间: |
|
| 查看次数: |
14257 次 |
| 最近记录: |