#jsf #primefaces
#jsf #первичные
Вопрос:
У меня есть программа, которая удаляет некоторые поля объекта, и значения этого объекта должны отображаться в модальном диалоговом окне.
При отладке программы я вижу, что объекты заполняются правильно, все значения присутствуют.
Сразу после определения этих значений я показываю диалоговое окно из своего компонента, но значения не отображаются.
Вот как я определяю свое диалоговое окно.
<p:dialog id="infoDialogReset"
class="dialogWindowGenericMessage"
showHeader="false"
widgetVar="infoDialogResetResolve" modal="true" showEffect="fade" hideEffect="fade" resizable="false" appendTo="@(body)" closable="false">
<p:panel id="infoDialogResetPanel" class="dialogText18Blue" header="RESET RESOLVE CHANNEL" style="">
<p:outputLabel >reset status ->#{channelManagement.selectedChannel.resetStatus}</p:outputLabel>
</f:facet>
</p:panel>
</p:dialog>
Это фрагмент кода, в котором я передаю значения в значения переменных.
this.selectedChannel.setResetStatus(0);
RequestContext.getCurrentInstance().update(":j_idt3:mainForm:infoDialogReset");
context.execute("PF('infoDialogResetResolve').show();");
В результате диалоговые окна отображаются так, как ожидалось, но значение для объекта channelManagement.selectedChannel.resetStatus не отображается.
Есть идеи, что я делаю не так?
Комментарии:
1. Я сомневаюсь, что идентификатор клиента, который вы обновляете, правильный, поскольку вы appendTo=»@(body)»
2. Компонент @ViewScoped?
3. Привет, Жакен, я согласен, что это может быть проблемой, но если я удалю @ (body) из диалогового окна, оно откроется «серым» и недоступным для просмотра. Затем я попытался использовать родительский идентификатор, но также не работает.
4. Привет, Михал, правильно, это компонент с областью просмотра. Вы рассматриваете это как возможную проблему?
Ответ №1:
Я изменил свой подход.
Вместо вызова моего модального диалогового окна из back bean я вызвал непосредственно со страницы .xhtml.
Просто для справки, если кто-то сталкивается с такой же проблемой. Именно так я выполняю вызов.
<p:commandButton ajax="true" class="buttonCommmandBlue" value="RESET" oncomplete="PF('dialogResetResolve').show()" update=":j_idt3:mainForm:panelResetResolve" action="#{channelManagement.resetChannel(channelManagement.selectedChannel.name)}">