title: DataTable clearFilter() not working properly
body: <p>I have a complicate JSF that contain dataTable with filter in each one of the columns.
  In order to make sure that the generate button will fetch all the data first I need to clear all the filters  when the user press the button.</p>
  
  <p>I try to do use onclick but then I couldn’t see the blockUI I also try on complete (ajax) but again it was not working properly with all the other items (blockUI ,message).
  I decided to try to clear the filters via server side but only dataTable.reset() is working.</p>
  
  <p>I have no more ideas how to clean the filters ???</p>
  
  <p>Is this API working ?</p>
  
  <p>Appreciate your help</p>
  
  <p>Thanks</p>
  
  <p></p>
  
  <pre><code>&lt;h:panelGrid columns="1" style="width: 100%"&gt;
      &lt;p:panel id="vt-panel"&gt;
          &lt;h:panelGrid columns="5" cellpadding="2" &gt;  
              &lt;h:outputText value="Start Date"  /&gt;
              &lt;p:calendar id="vt-start" value="#{vtRepBean.startDate}" binding="#{startDateComponent}" maxlength="9" size="9" pattern="dd-MMM-yy" title="dd-MMM-yy" required="true" maxdate="#{vtRepBean.endDate}"&gt;
                  &lt;p:ajax event="dateSelect" listener="#{vtRepBean.handleStartDateSelect}" update=":mainForm:vt-end"/&gt;
              &lt;/p:calendar&gt;
              &lt;h:outputText value="End Date"  /&gt;
              &lt;p:calendar id="vt-end" value="#{vtRepBean.endDate}" maxlength="9" size="9" pattern="dd-MMM-yy" title="dd-MMM-yy" required="true" mindate="#{vtRepBean.startDate}"&gt;
                  &lt;p:ajax event="dateSelect" listener="#{vtRepBean.handleEndDateSelect}" update=":mainForm:vt-start"/&gt;
              &lt;/p:calendar&gt;
              &lt;p:commandButton
                  id="genVtBtn"
                  value="Generate"
                  actionListener="#{vtRepBean.handleVTGenerateButton}"
                  update=":mainForm:vt-panel,:mainForm:vt-panel-table"&gt;
              &lt;/p:commandButton&gt;
          &lt;/h:panelGrid&gt;
      &lt;/p:panel&gt;
  &lt;/h:panelGrid&gt; 
  &lt;p:growl id="vt_message" showDetail="true" autoUpdate="true"/&gt;
  &lt;h:panelGroup id="vt-panel-table"&gt;
      &lt;p:dataTable id="vtDataTable"
                   widgetVar="vtWidget"
                   var="reportObject"
                   value="#{vtRepBean.reportObjectsList}"
                   rendered="#{vtRepBean.renderVTReport}"
                   filteredValue="#{vtRepBean.filteredVTList}"
                   paginator="true"
                   paginatorPosition="bottom"
                   paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
                   rowsPerPageTemplate="50,100,200"
                   rows="50"
                   style="width: 100%"&gt; 
          &lt;p:columnGroup type="header"&gt; 
              &lt;p:row&gt;  
                  &lt;p:column colspan="5" headerText="VT request"/&gt; 
                  &lt;p:column colspan="1" headerText="Dis" /&gt; 
              &lt;/p:row&gt;  
              &lt;p:row&gt;  
                  &lt;p:column headerText="CREATE DATE" sortBy="#{reportObject.log.createDate}" filterBy="#{reportObject.log.createDate}" filterMatchMode="contains"/&gt;  
                  &lt;p:column headerText="IP" sortBy="#{reportObject.log.ip}" filterBy="#{reportObject.log.ip}" filterMatchMode="contains"/&gt;    
              &lt;/p:row&gt;
          &lt;/p:columnGroup&gt;
          &lt;p:column &gt;  
              &lt;h:outputText value="#{reportObject.log.createDate}"/&gt;  
          &lt;/p:column&gt;
          &lt;p:column &gt;  
              &lt;h:outputText value="#{reportObject.log.ip}"/&gt;  
          &lt;/p:column&gt;    
      &lt;/p:dataTable&gt;
      &lt;p:commandLink rendered="#{vtRepBean.renderVTReport}" ajax="false" onclick="PrimeFaces.monitorDownload(showStatus, hideStatus)"&gt;  
          &lt;p:graphicImage value="resources/images/excel.png" title="excel" style="border-color: white"/&gt;  
          &lt;p:dataExporter id="xlsReport"
                          type="xls" 
                          target="vtDataTable"
                          fileName="VTReport"
                          postProcessor="#{vtRepBean.postProcessXLS}"/&gt;
      &lt;/p:commandLink&gt;
  &lt;/h:panelGroup&gt;
  &lt;p:blockUI widgetVar="blockVTPanel" trigger="genvtBtn" block="vt-panel"&gt;
      &lt;div class="disable-scroll"&gt;
          &lt;p:graphicImage value="resources/images/ajax-loader.gif"/&gt; 
      &lt;/div&gt;
  &lt;/p:blockUI&gt;
  </code></pre>
  
  <p></p>
  
  <pre><code>     DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("mainForm:vtDecomDataTable");
          if (!dataTable.getFilters().isEmpty()) {
              logger.info("dataTable.getFilters().isEmpty() :" + dataTable.getFilters().isEmpty());
  
              dataTable.getFilters().clear();// not working
              dataTable.getFilteredValue().clear();// not working
              dataTable.setFilteredValue(null);// not working
              dataTable.setFilters(null);// not working
              dataTable.setFilterMetadata(null);// not working 
  
              dataTable.reset();// working 
  
              RequestContext requestContext = RequestContext.getCurrentInstance();
              requestContext.update("mainForm:vtDecomDataTable");
  
          }
  </code></pre>