2013-03-21 98 views
4

我的主要jsf包括2個jsf,其中每個人都有一個帶過濾選項的表格。如何通過服務器端重置dataTable過濾器

這是從主短例如:

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

的問題是,我需要刪除過濾器改變2個表之間的視圖時 我不能因爲經由clearFilters使用客戶端我有2個表:

<p:commandButton 
oncomplete="table1Widget.clearFilters() ????" 

所以我想,最好的地方會在通過手柄方法在服務器端,但過濾器列表爲空,也表

DataTable dt1 = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("mainForm: .... "); 

如何重置過濾器?

感謝

+0

請給出你的問題很多信息,似乎是不完整的回答。 – Jitesh

回答

0

您可以使用對數據表以下的,你必須:

  1. dt1..setFilters(null);將擺脫該數據表過濾器的值

  2. dt1.reset()也將復位數據表到處女狀態

+0

這種方法不起作用 – angus

1

我在會話中有2個數據表。我不明白原因,但是當我使用dt1.reset()時,它重置了它們兩個。

我試圖

dt1 = new DataTable(); 

,它解決了我的問題。

注意:dt1.reset()工作時,我試着用1數據表。

+0

奇怪的行爲和糟糕的'解決方案'...在JSF組件上做'新'總是不好的...... – Kukeltje