У меня есть 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
должен быть заполнен выбранным значением, но он кажется нулевым - я что-то упустил?
В качестве недостатка, для правильного устранения неполадки, было бы необходимо добавить соответствующие части бэкэнда к вопросу. – Vogel612
Да, я должен был написать немного больше кода. Мой вариант использования несколько сложный, и я попытался упростить его, чтобы облегчить понимание вопроса - или, может быть, я должен был разместить по крайней мере вызовы 'c: set', но опять же, если бы я опубликовал что я, вероятно, смог бы определить проблему. – nuno
Я отредактировал вопрос с кодом 'c: set', так как он может ссылаться на проблему, которую могут иметь другие пользователи (' c: set' переставляет значение в переменную на обновления) - поэтому я не думаю, что это должно быть закрыто – nuno