처음에는 내 영어를 유감스럽게 생각합니다. 글쎄, 나는 각자 개별적으로 잘 작동하는 대화 상자를 응용 프로그램에 가지고있다. 그러나 하나의 대화 상자에서 다른 대화 상자를 호출해야 할 때,이 두 번째 대화 상자를 닫을 때 첫 번째 대화 상자를 닫을 때 문제가있다. 나는 primefaces에서 자바 API에 의해 그들을 생성합니다. 이 문제를 해결할 수있는 방법은 무엇입니까?프라임 (Primeface)의 다른 대화창을 통한 대화
편집 : 오른쪽, 나는 여기에 내 첫 번째 대화 호출
<h:outputLabel value="#{bundle.CreateProfissionalLabel_idRegraComissao}" />
<h:panelGroup>
<h:inputText readonly="true" value="#{profissionalController.selected.idRegraComissao.descricao}" id="nomeRegraComissao"/>
<p:commandButton value="#{bundle.Pesquisar}" action="#{searchRegraComissaoController.abrirDialogo()}" process="@this" update="@none">
<p:ajax event="dialogReturn" listener="#{profissionalController.regraComissaoSelecionada}" process="@this" update="nomeRegraComissao"/>
</p:commandButton>
</h:panelGroup>
내 openDialog 방법 (searchRegraComissaoController.abrirDialogo은()) 첫 번째 대화입니다 : 이제
public void abrirDialogo() {
Map<String, Object> opcoes = new HashMap<>();
opcoes.put("modal", true);
opcoes.put("resizable", false);
opcoes.put("contentHeight", 470);
RequestContext.getCurrentInstance().openDialog("/webapp/lovs/SearchRegraComissao", opcoes, null);
}
내가 가진 이 첫 번째 대화 상자에서 렌더링되고 두 번째 대화 상자를 여는 xhtml 파일 (/webapp/lovs/SearchRegraComissao.xhtml). 여기에 그것을 수행하는 방법은 다음과 같습니다
바로 여기<p:outputLabel value="#{bundle.CreateRegraComissaoLabel_idClinica}" />
<p:panel>
<h:inputText readonly="true" value="#{searchRegraComissaoController.filtro.clinica.nome}" id="nomeClinica"/>
<p:commandButton value="#{bundle.Pesquisar}" actionListener="#{searchClinicaController.abrirDialogo()}" process="@this" update="@none">
<p:ajax event="dialogReturn" listener="#{searchRegraComissaoController.clinicaSelecionada}" process="@this" update="nomeClinica"/>
</p:commandButton>
</p:panel>
, 그것은이 두 번째 대화 상자를 엽니 다 방법이 있습니다
public void abrirDialogo() {
Map<String, Object> opcoes = new HashMap<>();
opcoes.put("modal", true);
opcoes.put("resizable", false);
opcoes.put("contentHeight", 450);
RequestContext.getCurrentInstance().openDialog("/webapp/lovs/SearchClinica", opcoes, null);
}
는
글쎄, 지금까지, 모든 것이 잘 작동 문제는 다음 단계에 . 이제 두 번째 대화 상자를 닫아야하는 메서드가 있습니다. 이 방법은 두 번째 대화 상자에서 데이터 테이블에 한 행을 선택 사용자 후 호출됩니다
<p:column headerText="#{bundle.Acao}">
<p:commandButton value="#{bundle.Escolher}" process="@this" action="#{searchClinicaController.selecionar(clinica)}"/>
</p:column>
그리고 마지막 방법은 다음과 같습니다
는public void selecionar(Clinica clinica) {
clinicas = new ArrayList<>();
//todasClinicas = false;
// isCPF = "CPF";
//nome = "";
RequestContext.getCurrentInstance().closeDialog(clinica);
}
이 방법의 끝은 오류하지만 두 번째 대화없이 도달 닫히지 않았습니다. 누구든지 도울 수 있니?
해결책 : 프라임 스 페이스 가이드 6을 읽고 프라임 스 페이스 5를 사용했습니다. 프라임 엣지 5에서는 중첩 대화 상자가 지원되지 않습니다. 방금 버전을 6으로 업데이트했는데 이제는 잘 작동합니다.
[A, 최소한의 완전하고 검증 예를 추가하세요] (https://stackoverflow.com/help/ mcve) –
오른쪽에 코드를 추가했습니다. –
닫으려고하는이 클리닉 매개 변수는 무엇입니까? 그건 나에게 맞지 않아. –