Jsf 2 如何通过服务器端重置dataTable筛选器
我的主要jsf包括2个jsf,其中每个jsf中都有一个带有过滤选项的表 这是一个简短的例子,主要内容如下:Jsf 2 如何通过服务器端重置dataTable筛选器,jsf-2,primefaces,Jsf 2,Primefaces,我的主要jsf包括2个jsf,其中每个jsf中都有一个带有过滤选项的表 这是一个简短的例子,主要内容如下: <h:panelGroup id="b1"> <p:commandButton value="exe" actionListener="#{bean.handle}" rendered="#{bean.render}"
<h:panelGroup id="b1">
<p:commandButton
value="exe"
actionListener="#{bean.handle}"
rendered="#{bean.render}"
update=":mainForm:panel1,:mainForm:panel2">
</p:commandButton>
</h:panelGroup>
</h:panelGrid>
</p:panel>
<ui:include src="table1.xhtml" />
<ui:include src="table2.xhtml" />
如何重置过滤器
谢谢您可以在您拥有的数据表上使用以下任一项:
dt1..setFilters(null)代码>将删除datatable筛选器值
dt1.reset()
还会将数据表重置为原始状态在我的会话中有2个数据表。我不明白原因,但当我使用
dt1.reset()
时,它会同时重置它们
我试过了
dt1 = new DataTable();
它解决了我的问题
注意:
dt1.reset()
在我尝试使用1个数据表时起作用。使用Primefaces current帮助程序(版本6.2)在服务器端执行clearFilters,如下所示:
PrimeFaces current = PrimeFaces.current();
current.executeScript("PF('dataTableWidget').clearFilters()");
请为你的问题提供更多的信息,这似乎是不完整的答案。怪异的行为和糟糕的“解决方案”。。。在JSF组件上执行“新建”总是不好的。。。
dt1 = new DataTable();
PrimeFaces current = PrimeFaces.current();
current.executeScript("PF('dataTableWidget').clearFilters()");