Como Chamar o <p:Dialog> de outra pagina xhtml

Boa tarde pessoal estou criando um sistema com jsf e primefaces e surgiu uma duvida.
Tem como eu chamar um evento Dialog de uma pagina xhtml em outra pagina.

EX: Nesta pagina xhtml tenho esse codigo.

[code]html xmlns=“http://www.w3.org/1999/xhtml
xmlns:h=“http://java.sun.com/jsf/html
xmlns:f=“http://java.sun.com/jsf/core
xmlns:p=“http://primefaces.prime.com.tr/ui”>
<h:head>
TODO supply a title
</h:head>
<h:body>

    <p:dialog header="Usuario" widgetVar="dialogGerUsuario"  resizable="false" modal="true" showEffect="slide" width="500">
         <h:form prependId="false">
            <h:panelGrid id="infosUsuario" columns="2" style="margin-bottom:10px">

                <h:outputLabel for="nome" value="Nome:" />
                <h:inputText id="nome" value="#{usuarioController.usuario.nome}"/>

                <h:outputLabel for="senha" value="Senha:" />
                <h:inputText id="senha" value="#{usuarioController.usuario.senha}"/>

                <h:outputLabel for="email" value="E-mail" />
                <h:inputText id="email" value="#{usuarioController.usuario.email}"/>

               

                <p:commandButton update="tabela" oncomplete="dialogGerUsuario.hide();" actionListener="#{usuarioController.adicionarUsuario(actionEvent)}" value="Inserir Usuario"/>
                <p:commandButton update="tabela" oncomplete="dialogGerUsuario.hide();" actionListener="#{usuarioController.alterarUsuario(actionEvent)}" value="Alterar Usuario"/>

            </h:panelGrid>
        </h:form>
    </p:dialog>
   
 
</h:body>   
[/code]

Quero chamar esse Dialog em outra pagina.

basta você fazer o include de seu dialog na página da página que você quer chamar.

1 curtida

Obrigado deu certo aqui.

Vai na página que você quer colocar o dialog e coloca:<ui:include src="SEU_DIALOG"/>

1 curtida

Cara, você pode me dar o exemplo tanto do xhtml do dialog, quanto do que chama ele ? Obrigado

http://www.primefaces.org/showcase/ui/dialog.jsf

Esse showCase ja tinha visto, mas queria ver na hora da chamada… queria ver o xhtml que tem o dialog e o xhtml que contem um botao que chama o dialog, ja pesquisei pra caramba e nada =(

Cara, você queria ver o código do botão? É esse: <p:commandButton id="basic" value="Basic" onclick="dlg1.show();" type="button" />

Criar o código da dialog na página? É esse:<p:dialog id="basicDialog" header="Basic Dialog" widgetVar="dlg1"> <h:outputText value="Resistance to PrimeFaces is futile!" /> </p:dialog> O Link de onde eu tirei esses códigos? É esse: http://www.primefaces.org/showcase/ui/dialog.jsf

Isso eu sei, queria saber como abro um dialog de outra pagina xhtml eu ja ouvir ffalar que é com ui include e tals mas nao sei como é exatamente. Como o criador do topico conseguiu eu pensei que voces pudeasem ajudar postando o codo dos dos xhtml. Um que contem o dialog e outro que chama ele. Ps: desculpe os erros de portugues é que tou oostando do celilar e do onibus rs

opa amigo, você conseguil?

poderia mostrar o codigo da pagina que contem o dialog e a pagina que vc chama o dialog, de maneira que mostre tanto o include quanto a dialog.show() ?

também preciso disso, se conseguiu pode compartilhar ??

Valeu

opa, consegui sim, suponha que vc tem uma pagina chamada addAluno.xhtml onde nela possui seu

 <p:dialog ...  widgetvar="alunoDlg"...>

agora suponha que vc criou uma index.xhtml, nessa pagina vc precisa fazer o seguinte:

<body>
   <ui:include src="addAluno.xhtml"> 
     //vc só é incluir a pagina que possui o dlg e chamar o dlg, OBS: suponha que as paginas estão no mesmo local. caso contrario, em pastas diferentes, coloque as devidas pastas ex: /pasta/pagina.xhtml...
    // aqui vc pode chamar atraves de sua criatividade o alunoDlg.show();
    <h:commandButton action="alunoDlg.show()" value="Chamar" />
.
.
.

espero que tenha ajudado e não complicado.

Tbem estou com o mesmo problema ai eu consegui so que nao estou conseguindo fazer uma datatable funcionar, tpw fiz um manageBean
para atualizar a pagina criando objeto a lista queria saber como faço… N consigo listar nd =(

Ele abre normal o Dialog so nao lista


@SessionScoped

	public void update() {
		this.negocio = new Negocio();
		this.selectedCadCli = new CadCli();
		this.selectedCiCadUsr = new CiCadUsr();
		this.selectedCiCadSol = new CiCadSol();
		this.ciCadSol = new CiCadSol();
		this.listCiCadSolArq = new ArrayList<CiCadSolArq>();
		this.listCiCadSolArqImg = new ArrayList<CiCadSolArq>();
		this.listCiCadSolArq02 = new ArrayList<CiCadSolArq>();
		this.listCiCadSolArqImg02 = new ArrayList<CiCadSolArq>();
		this.ciCadSolEvento = new CiCadsolEvento();
		this.listCadCli = new CadCliDao().findAll("CadCli", "cRazao");
		this.listCiCadUsr = new CiCadUsrDao().findAll("CiCadUsr", "ciUsrNomFunc");
		this.listCiCadSol = new CiCadSolDao().findAll();
		this.lazyCiCadSol = new LazyCiCadSolDataModel(listCiCadSol);
		this.consultaCicadSol = new ConsultaCiCadSol();
		this.setEnableDisabledButton(0);
		this.setEnableDisnableInpuText(true);
		this.setTabIndex(0);
	}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui">
<h:body>
		<h:form id="f">
			<p:growl id="messages" autoUpdate="true" showDetail="true"
				sticky="false" life="3000" />

			<p:dialog id="dlg2" header="Atendimento" widgetVar="dlg2"
				resizable="false" modal="true">
						<p:dataTable id="dataTable" var="cicadsol"
						value="#{atendBean.lazyCiCadSol}" paginator="true" rows="5"
						paginatorTemplate="{FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
						selectionMode="single" selection="#{atendBean.selectedCiCadSol}" lazy="true" rowKey="#{cicadsol.ciSolCodSol}">
						
						<p:column id="processo" style="text-align: center;">
							<f:facet name="header">
								<h:outputText value="Processo" />
							</f:facet>
							<h:outputText value="#{cicadsol.ciSolCodSol}" />
						</p:column>
						</p:dataTable>
			</p:dialog>
		</h:form>
</h:body>
</html>

veja o escopo do seu bean, qual é?

@SessionScoped Mano!

se poder colocar tanto o bean quanto a pagina ficaria melhor de analisar.

Vc tem Email ai te mando tudo vc da uma olhada melhor!

o correto é que você poste aqui, pois caso eu não saiba, alguém possa ajudar também.

se for muito grande cole no gist ae e mostre o link