2012-04-09 24 views
0

我不能夠顯示與預填充值的p:dialogp:inputText組件:預裝號碼:inputText組件

<p:dialog modal="true" widgetVar="editPersonDlg" header="Edit Person" width="350"> 
    <h:form id="editPersonForm"> 
     <h:panelGrid columns="2"> 
      <h:outputLabel for="editFirstName" value="First Name:" /> 
      <p:inputText id="editFirstName" value="#{personBean.selectedPerson.firstName}" /> 
      <p:commandButton value="Save" type="Button" actionListener="#{personBean.edit}" 
           oncomplete="editPersonDlg.hide()"/> 
      <p:commandButton value="Cancel" type="Button" oncomplete="editPersonDlg.hide()"/> 
     </h:panelGrid> 
    </h:form> 
</p:dialog> 

調試時我看到personBean#selectedPerson有效地返回一個非空的人,有沒有空名。 Person#getFirstName正在有效地返回非空名稱。但是,FirstName和LastName不會出現在對話框的inputText框中。

回答

2

這可能是因爲在打開它之前沒有更新對話框。 例如: 您通過在p:dataTable中選擇personBean.selectedPerson來初始化personBean.selectedPerson,然後通過單擊打開「編輯」對話框的p:commandButton來編輯它。您必須更新此對話框,以便組件可以獲取實際數據。嘗試這樣的事情對於這打開的對話框按鈕:

<p:commandButton value="Edit" oncolmplete="editPersonDlg.show()" update=":formInWhichIsDialog:dialogID" /> 

讓我知道它的工作,問題可能是別的地方,但是這是最常見的事。 希望它有幫助!