2014-01-31 139 views
0

我有一個命令進行對話,而這也正是我想要做的事:Primefaces標籤正確

  1. 做一些Java的工作
  2. 更新Primefaces標籤
  3. 讓我的對話盒子消失
  4. 轉到某個標籤。

這是我使用的代碼:

   <p:commandButton value="Submit" 
       action="<some java work>" 
       oncomplete="dialogue.hide(); sideTabs.select(1)" 
       update="<update side tab"> 
      </p:commandButton> 

的問題是,這只是刷新之間工作一次。我的意思是,我點擊按鈕,一切正常 - 標籤更改爲請求的標籤,標籤更新,對話消失。但是當我再次單擊按鈕時,請求的選項卡確實被選中,但在我按f5之前沒有正確刷新。一旦我這樣做了,我可以再次單擊對話按鈕,該選項卡將再次正確刷新,但再一次,只有一次 - 直到我再次擊中f5。所以,這樣的事情:

  1. 點擊按鈕 - >見1項的標籤
  2. 再次單擊該按鈕 - >仍然可以看到在標籤
  3. 按F5只有1項 - >見2項在標籤
  4. 點擊按鈕 - >查看選項卡
  5. 3項再次點擊該按鈕 - >仍然可以看到在標籤3項
  6. 按F5 - >查看選項卡 等4項.. 。

有沒有人有一個想法,爲什麼發生這種情況?我是否需要添加一些頁面刷新機制到我的commandButton?如果是這樣,這是如何完成的? 謝謝!

回答

1

我試圖複製這個問題沒有成功。

這裏是我的ViewScoped豆一屬性:

private String str1 = "a"; 

private String str2 = "b"; 

private String update = ":f:t"; 

private Integer index = 0; 

這裏是視圖:

<h:form id="f"> 
    <p:tabView id="t" widgetVar="tVar" activeIndex="#{viewMBean.index}" > 
     <p:tab id="a" title="A" > 
      #{viewMBean.str1} 
     </p:tab> 
     <p:tab id="b" title="B"> 
      #{viewMBean.str2} 
     </p:tab> 
    </p:tabView> 
</h:form> 

<p:dialog id="d" widgetVar="dVar"> 
    <h:form> 
     <p:inputText value="#{viewMBean.str1}" /> 
     <br /> 
     <p:inputText value="#{viewMBean.str2}" /> 
     <br /> 
     <p:inputText value="#{viewMBean.update}" /> 
     <br /> 
     <p:inputText value="#{viewMBean.index}" /> 
     <br /> 
     <p:commandButton value="Submit" update="#{viewMBean.update}" oncomplete="dVar.hide();" /> 
    </h:form> 
</p:dialog> 

我相信這個問題是在你的代碼別的地方。

+0

問題確實在別處。謝謝您的幫助 :) –