2014-09-08 5 views
-1

У меня есть p:dialog, содержащий p:dataTable; когда выбирается строка, я хочу включить p:commandButton, и при щелчке текстовое поле должно быть обновлено, но компонент textarea появляется, и он был проверен (красное выделение), и значение всегда равно нулю.Управляемое свойство bean не установлено на commandButton

текстовое поле:

<c:set property="resolution" value="#{cc.attrs.resolution}" target="#{cc.attrs.bean}" /> 
... 
<h:outputLabel for="resolution" value="#{text['task.action.resolution']}" /> 
<p:inputTextarea id="resolution" 
      rows="10" 
      value="#{cc.attrs.bean.resolution}"     
      required="true" requiredMessage="#{text['task.action.required.resolution']}" 
      /> 

Диалог:

<p:dialog id="userNotesDialog" 
      widgetVar="userNotesDialogVar" 
      header="#{text['task.action.user_notes']}"      
      ... > 
    <p:dataTable id="userNotesTable" 
       value="#{cc.attrs.bean.userNotesOptions}" 
       rendered="#{!cc.attrs.bean.userNotesOptions.isEmpty()}" 
       var="userNote" 
       selection="#{cc.attrs.bean.selectedUserNote}"        
       selectionMode="single" rowKey="#{userNote.id}">    
       <p:ajax event="rowSelect" 
       listener="#{cc.attrs.bean.onUserNoteSelect}" 
       update=":#{cc.clientId}:actionForm:chooseUserNote" 
    />            
     <p:column> 
     Some content here 
     </p:column> 
    </p:dataTable>  
    <p:commandButton id="chooseUserNote" 
     disabled="#{cc.attrs.bean.selectedUserNote == null}" 
     value="#{text['task.action.user_notes.select']}"            
     action="#{cc.attrs.bean.setResolutionWithUserNote}" 
     oncomplete="PF('userNotesDialogVar').hide()"  
     update=":#{cc.clientId}:actionForm:parentPanel :#{cc.clientId}:actionForm:resolution"> 
      <f:setPropertyActionListener target="#{cc.attrs.bean.resolution}" value="#{cc.attrs.bean.selectedUserNote.noteText}" /> 
    </p:commandButton> 
</p:dialog> 

Примечание: весь код заключен в форме (actionForm).

Когда диалог закрыт, компонент resolution должен быть заполнен выбранным значением, но он кажется нулевым - я что-то упустил?

ответ

0

Оказалось, что это был забытый c:set, который переставлял исходное значение в компонент textarea. Проблема была решена при удалении c:set.

+0

В качестве недостатка, для правильного устранения неполадки, было бы необходимо добавить соответствующие части бэкэнда к вопросу. – Vogel612

+0

Да, я должен был написать немного больше кода. Мой вариант использования несколько сложный, и я попытался упростить его, чтобы облегчить понимание вопроса - или, может быть, я должен был разместить по крайней мере вызовы 'c: set', но опять же, если бы я опубликовал что я, вероятно, смог бы определить проблему. – nuno

+0

Я отредактировал вопрос с кодом 'c: set', так как он может ссылаться на проблему, которую могут иметь другие пользователи (' c: set' переставляет значение в переменную на обновления) - поэтому я не думаю, что это должно быть закрыто – nuno

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