2012-04-09 8 views
0

Ich bin nicht in der Lage für eine p:inputText Komponente ein p:dialog mit vorgefüllter Werten anzuzeigen:Prefilled p: input Komponente

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

Beim Debuggen ich sehe, dass personBean#selectedPerson effektiv eine nicht-null Person, mit nicht-null zurückkehren Namen. Person#getFirstName gibt effektiv einen Nicht-Null-Namen zurück. FirstName und LastName werden jedoch nicht in den Eingabetextfeldern des Dialogs angezeigt.

Antwort

2

Es könnte sein, weil Sie das Dialogfeld nicht aktualisieren, bevor Sie es öffnen. Zum Beispiel: Sie initialisieren die personBean.selectedPerson, indem Sie es in p: dataTable auswählen und dann bearbeiten Sie es, indem Sie auf p: commandButton, die den "Bearbeiten" -Dialog öffnet. Sie müssen dieses Dialogfeld aktualisieren, damit die Komponente tatsächliche Daten abrufen kann. Versuchen Sie so etwas wie dies für die Schaltfläche, die den Dialog öffnet sich:

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

Lassen Sie mich wissen, ob es funktioniert, Problem irgendwo anders sein kann, aber dies ist die häufigste Sache. Hoffe es hat geholfen!

Verwandte Themen