2012-09-13 16 views
2

我使用Primefaces 3.4(也嘗試3.3)和Mojarra 2.1.7。但是我在更新p:tabView中的動態選項卡時遇到問題。動態Primefaces:tabView不更新

我有2個按鈕應該添加一個額外的選項卡。第一個按鈕位於p:tabView之外。當點擊這個按鈕時,支持bean被調用,p:tabView被更新,並且新的選項卡被顯示。但是,當我點擊第二個按鈕,該按鈕位於tabView的選項卡內時,將調用輔助bean,但tabView不會更新。

缺少更新僅在動態選項卡中發生。當我修改給定的例子只有一個選項卡,並顯示一個點擊按鈕時發生變化的值時,tabView會被兩個按鈕更新,並顯示新值。所以這只是在動態標籤中出現的問題。

這是我的代碼。

<f:view contentType="text/html"> 
     <h:form> 
      <p:commandButton value="press me" action="#{idTestBean.addTab}" update=":ApplicationTab"/> 
     </h:form> 

     <p:tabView id="ApplicationTab" cache="false" dynamic="false" var="tab" value="#{idTestBean.tabList}"> 
      <p:tab title="tab" closable="false" > 
       <p:panel> 
        <h:form> 
         <p:commandButton value="press me" action="#{idTestBean.addTab}" update=":ApplicationTab"/> 
        </h:form> 

        #{idTestBean.count} 
       </p:panel> 

      </p:tab> 
     </p:tabView> 
    </f:view> 

不同的選項卡包含需要單獨提交的單獨表單。因此我有不止一種形式的方法。

+0

你爲什麼使用2個窗體標籤?嘗試將所有內容放在一個表單標記中 – Tankhenk

回答

1

嗯,這應該做的伎倆:

<f:view contentType="text/html"> 
    <h:form> 
     <p:commandButton value="press me" action="#{idTestBean.addTab}" update="@form"/> 


    <p:tabView id="ApplicationTab" cache="false" dynamic="false" var="tab" value="#{idTestBean.tabList}"> 
     <p:tab title="tab" closable="false" > 
      <p:panel> 

        <p:commandButton value="press me" action="#{idTestBean.addTab}" update="@form"/> 


       #{idTestBean.count} 
      </p:panel> 

     </p:tab> 
    </p:tabView> 
    </h:form> 
</f:view> 
+0

好吧,這個工作,但在不同的標籤裏面,我有一些面板,需要獨立於其他面板提交。所以我的做法是在不同的水龍頭中只有形式。 – Zingel

+0

好吧,這不是一個問題,你仍然可以更新一種形式的不同標籤對象。但是你可以發佈你的Tab對象和你的bean,這樣我可以讓你的答案更清晰。 – Tankhenk

+0

對不起,我一直在度假,所以我的答案有點晚了。你是對的,我可以用一種形式處理我的不同物體。但每個標籤的字段可能超過500個,所以我只想每次只發佈一個標籤。但我必須對這個問題做一些調查。 – Zingel

0

今天,我也做了同樣的問題太多,我有一個動態TabView的了,裏面的標籤,還有就是一些需要的面板時標籤的變化進行更新,所以我所做的就是,我加了號碼:事件TabChange阿賈克斯,並在更新的屬性,我添加了形式ID和tabviewId這樣的:

:formID:tabViewID 

,它曾在去年。 只是你知道。