Я использую PrimeFaces 6.0, и я нашел проблему с помощью вложенных диалогов. RequestContext.openDialog не работает должным образом. Он не вызывает никаких исключений, но не открывает диалоговое окно.PrimeFaces openDialog не работает должным образом в вложенных диалогах
Я построил 5 страниц (от P1 до P5) на основе того же полного макета страницы. Каждая страница содержит p: dataTable. p: dataTable имеет p: column с p: commandButton, чтобы открыть следующую страницу в новом диалоговом окне. Это то, что я нашел: на некоторых из этих страниц кнопка первой строки не работает; кнопки остальных строк работают правильно.
Проблема, похоже, не связана с данными строки. Когда кнопка первой строки выходит из строя, она выходит из строя независимо от строки, которая там отображается. Строки можно сортировать по-разному (так что первый будет меняться), и кнопка первой строки будет продолжать сбой, а остальные кнопки будут продолжать работать. Проблема, похоже, не связана с этой страницей. Все кнопки работают правильно, когда страница является корневой (той, которая открывает первое диалоговое окно). Проблема возникает только в диалоговом окне.
Это кнопка:
<p:commandButton
icon="fa fa-folder-open"
action="#{ambientePrueba11.openDialog(currentRow)}"
partialSubmit="true"
process="@this"
update="@none">
<p:ajax
event="dialogReturn"
listener="#{ambientePrueba11.onDialogReturn}"
update="dataTable"/>
</p:commandButton>
Это код во вспомогательном компоненте (каждый из 5-бобов имеют различный результат, но остальная часть кода является то же самое):
public String openDialog(AmbientePrueba row) {
EventLogger.log(this, "openDialog", getDenominacion(row));
Object identificacion = getIdentificacion(row);
String key = "PaquetePrueba11";
String outcome = FacesUtils.getPageKeyFacesOutcome(key);
Map<String, Object> options = new HashMap<>();
options.put("modal", true);
options.put("resizable", true);
options.put("draggable", true);
options.put("width", 1260);
options.put("height", 860);
options.put("contentWidth", "100%");
options.put("contentHeight", "100%");
options.put("closable", true);
options.put("includeViewParams", true);
options.put("minimizable", true);
options.put("maximizable", true);
Map<String, List<String>> params = new HashMap<>();
params.put(CPP.ID_RECURSO, toList(identificacion));
params.put(CPP.ID_RECURSO_MAESTRO, toList(identificacion));
params.put(Global.PARAMETRO_FRAMEWORK_SESION, toList(getSessionFrame()));
params.put(Global.PARAMETRO_CONDICION_SESION, toList(MODAL));
RequestContext.getCurrentInstance().openDialog(outcome, options, params);
return null;
}
private List<String> toList(Object value) {
List<String> paramValue = new ArrayList<>();
paramValue.add(value + "");
return paramValue;
}
public void onDialogReturn(SelectEvent event) {
Object response = event.getObject();
facesLogger.info(response + "");
}
У кого-нибудь еще была похожая проблема? Любая помощь для решения или решения этой проблемы будет очень оценена.
Любая ошибка Javascript? –