Jsf 2 如何通过服务器端重置dataTable筛选器

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

我的主要jsf包括2个jsf,其中每个jsf中都有一个带有过滤选项的表

这是一个简短的例子,主要内容如下:

  <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()");