Я пытаюсь сделать способ деактивации, который покажет статус («ДЕАКТИВИРОВАН», «АКТИВИРОВАН») учетной записи в командной строке, и когда я нажал commandButton, он либо активирует, либо деактивирует учетную запись на основе текущего состояния. Как только я подтвержу, commandButton будет немедленно обновлен до его текущего состояния.Обновление p: commandButton in p: column по завершению actionListener
У меня есть следующий код, и я хотел бы обновить свой commandButton после завершения моего actionlistener в «confirmDeactivateDialog» или «confirmActivateDialog». Я попытался использовать update="a,b"
в этих двух тегах confirmDialog, но он не работает. Какие-либо предложения?
<p:column headerText="Status" style="text-align: center">
<p:commandButton id='a' rendered="#{bean.isActivated(account_status)==true}" oncomplete="PF('deactivateDialog').show();" value="Activated">
<f:setPropertyActionListener value="#{searchEmployeeResultList}" target="#{bean.selectedEmployee}"/>
</p:commandButton>
<p:confirmDialog id="confirmDeactivateDialog" header="Confirm Deactivation" widgetVar="deactivateDialog">
<p:commandButton id="Deactivate" value="Ok" oncomplete="PF('deactivateDialog').hide();" actionListener="#{AccountManagedBean.deactivate}"/>
</p:confirmDialog>
<p:commandButton id="b" rendered="#{bean.isActivated(account_status)==false}" oncomplete="PF('activateDialog').show();" value="Deactivate">
<f:setPropertyActionListener value="#{searchEmployeeResultList}" target="#{bean.selectedEmployee}"/>
</p:commandButton>
<p:confirmDialog id="confirmActivateDialog" header="Confirm Activation" widgetVar="activateDialog">
<p:commandButton id="Activate" value="Ok" oncomplete="PF('activateDialog').hide();" actionListener="#{AccountManagedBean.activate}"/>
</p:confirmDialog>
</p:column>
"Это не работает?" - Что именно не сработало? Любые сообщения об ошибках? Может быть, что-то вроде «Компонент» «не найден»? – Manuel
@Manuel: hint: OP объявляет диалог внутри столбца. – BalusC
Справа. Тогда сгенерированный идентификатор 'p: commandButton' будет не просто' a' или 'b'. Проверьте сгенерированный исходный код HTML JSF. JSF будет генерировать уникальный идентификатор для каждой строки в datatable, и этот идентификатор будет префиксом вашего элемента 'a'. Используйте относительный путь обновления для 'a' и' b'. – Manuel