Подтвердить что ты не робот

Диалоговое окно Primefaces с modal = true не работает должным образом

Мне не удается получить поле dialog с атрибутом modal=true. Он корректно работает с modal = false, но когда я пытаюсь установить modal=true, даже оверлей диалогового окна становится неактивным.

Как я могу заставить его работать правильно?

4b9b3361

Ответ 1

В руководстве по разделам 2.2 в разделе "Диалог":

appendToBody FALSE Boolean Добавляет диалог как дочерний элемент тела документа.

При использовании диалога Primefaces используется атрибут appendToBody, чтобы включить обнаружение диалогов. Диалоговое окно Primefaces основано на компоненте диалога YUI, который имеет аналогичную проблему для модальных диалогов.

Манипуляция оверлей диалогового окна будет включать переопределение класса CSS наложения и определение собственной непрозрачности.

Ответ 2

С Primefaces 5 appendTo="@(body)" исправлена ​​проблема для меня.

Ответ 3

Я также боролся со странным поведением, пока я не переместил p:dialog в отдельный h:form, после чего данные в диалоге соответствовали строке из dataTable, но наложение не скрывалось.

appendToBody=true решил проблему с наложением. Мне еще нужно проверить диалоги со входами и действиями.

Ответ 4

appendToBody = true вызывает проблемы, связанные с вложенными формами - значения входных текстов, введенные в диалоговом окне, игнорируются, а запросы ajax не проходят до тех пор, пока диалог не получит свою собственную не вложенную форму. Даже без modal = true appentToBody = true вызывает это поведение.