2012-04-09 2 views
0

Я не в состоянии отобразить p:dialog с укажи значениями для p: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, с не-нуль имена. Person#getFirstName эффективно возвращает непустое имя. Однако FirstName и LastName не отображаются в поле вводаText диалогового окна.

ответ

2

Это может быть так, что вы не обновляете диалоговое окно перед его открытием. Например: Вы инициализируете personBean.selectedPerson, выбирая его в p: dataTable, а затем вы хотите отредактировать его, нажав на p: commandButton, который открывает диалог редактирования. Вы должны обновить это диалоговое окно, чтобы компонент мог получать фактические данные. Попробуйте что-то вроде этого для кнопки, которая открывает диалоговое окно:

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

Позвольте мне знать, если он работал, проблема может быть в другом месте, но это самое обычное дело. Надеюсь, это помогло!

Смежные вопросы