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
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
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 é?
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