2014-12-09 106 views
0

我有以下代码:Primefaces功能clearFilters()不工作

<p:tree value="#{sessBean.root}" var="node" animate="true" id="idTree" selectionMode="single" selection="#{sessBean.selectedNode}" > 
     <p:ajax listener="#{reqBean.doBtnSearch}" event="select" onstart="PF('tblDataWidget').clearFilters();" update=":form1:tabView:tblData" /> 
     <p:treeNode> 
      <h:outputText value="#{node.descr}" /> 
     </p:treeNode> 
    </p:tree> 

    <p:commandButton value="Add" icon="ui-icon-plus" id="doBtnAdd" action="#{reqBean.doBtnAddEntry}" update="tblData" oncomplete="PF('tblDataWidget').clearFilters();" /> 

我有一个DataTable(tblData)与许多条目,其中装载并点击树节点时显示。到目前为止,没有问题。 Datatable在某些列上有过滤器,这也可以正常工作。出现问题时,我想清除过滤器(在按钮和树节点上单击)。当我点击'添加'按钮(请参阅上面的代码)时,按预期清除过滤器,但是当我单击树节点时,清除过滤器不起作用。 commandButton和树组件都包含在tabView容器中。

我在做什么错?

谢谢您的建议!

PS:使用PrimeFaces 5.1

回答

0

尝试:

<p:ajax listener="#{reqBean.doBtnSearch}" event="select" onstart="PF('tblDataWidget').clearFilters();" update="#{p:component('tblData')},#{p:component('idTree')}" />