2015-04-06 23 views
0
<h:form> 
    <p:dialog> 
     <p:outputPanel> 
      <p:panelGrid> 
       <p:row> 
        <p:column> 
         <p:commandLink value="link" id="myLink"/> 
         <p:overlayPanel id="overPanel" for="myLink" > 
          <p:outputLabel id="linkPanel" value="#{bean.value}"/> 
         </p:overlayPanel> 
        </p:column> 
       </p:row> 
      </p:panelGrid> 
     </p:outputPanel> 
    </p:dialog> 
</h:form> 

在上述片斷覆蓋面板不顯示內容,只示出一個空的面板,但如果我與硬編碼一個像value="test"替換值,我可以看到內容在覆蓋面板中,當我使用螢火蟲檢查頁面時,我可以看到內容未放置在覆蓋面板的div內。有人可以幫忙嗎?號碼:overlayPanel不顯示內容

+0

這取決於您如何將值設置爲相應託管bean中的相應屬性。檢查一下,如果它是真正設置了一個正確的值,並在一個正確的時間。 – Tiny

+0

這些值設置正確,即使我可以看到螢火蟲的值,這個問題沒有設置在覆蓋面板的div裏面 – karki

+0

呃!爲什麼你不必要地使用'?相反,一個''應該就足夠了。 – Tiny

回答

1

製作您的p:overlayPanel惰性負載可能會解決此問題。您可以在p:overlayPanel上使用dynamic="true"來達到目的。

此技術使您的p:overlayPanel的內容不會在頁面加載時呈現,只在顯示p:overlayPanel之前呈現。

還有一種方法是從p:commandLink更新p:outputLabel

還有一種方法是在你的的widgetwar上使用客戶端js函數loadContents()。由於您將覆蓋圖保存在數據表中,因此這可能不是一個可行的解決方案。

+0

很棒...... dynamic =「true」適合我 – karki

0

使用try的toString()是這樣的:

<p:outputLabel id="linkPanel" value="#{bean.value.toString()}" /> 

我有這個解決它同樣的錯誤。並嘗試確保在bean內部有方法toString重寫。

+0

但是,該值已經在字符串中,因此將字符串轉換爲字符串真的非常棒 – karki