JSF+RichFaces MODAL[Resolvido]

15 respostas
B

Pessoal,

Estou utilizando o modal do richfaces para exibir mensagens de se deseja realmente apagar o registro.
Estou passando o parametro quando estou pedindo para exibir a mensagem no modal.
O problema é que ele está perdendo esse parametro e quando ele vai deletar no banco ele não encontra o registro pois o id está indo null.
Como eu faço para passar o parametro para o modal?

15 Respostas

A

Amigo,

Estou com esse mesmo problema. o meu código está assim:

MODAL

<rich:modalPanel id="conf_delete" minHeight="100" minWidth="300" height="100" width="300">
		<f:facet name="header">
			<h:outputText value="Alerta" />
		</f:facet>
		Deseja realmente excluir este registro?
		<br/>
		<br/>
		&lt;center&gt;
			&lt;s:link actionListener="#{marcaBean.delete(selectedMarca)}"&gt;<img  />&lt;/s:link&gt;
			&nbsp;
			&lt;h:outputLink value="#" id="btn1"&gt;
				&lt;h:graphicImage value="../image/cancel.png" style="margin-left:5px; cursor:pointer; border: none"/&gt;
				&lt;rich:componentControl for="conf_delete" attachTo="btn1" operation="hide" event="onclick"/&gt;
			&lt;/h:outputLink&gt;
		&lt;/center&gt;
	&lt;/rich:modalPanel&gt;

E no datatable assim:

&lt;s:link&gt;
                	&lt;a4j:commandLink action="#{rich:component('conf_delete')}.show()"&gt;
                		&lt;h:graphicImage value="../image/delete.png" style="border: none"/&gt;
      	         	&lt;/a4j:commandLink&gt;
                &lt;/s:link&gt;

Como está o seu?

B

O meu está bem parecido a unica diferença que no link eu estou passando um parametro com o id
E assim que clica no modal ele perde esse parametro.
Sem o modal ele funciona normalmente acho que o seu não vai funcionar sem o modal pois qual o id do objeto que vc quer deletar?

A

Estou tentando deletar um registro da linha do dataTable. Acontece que ele sempre pega o mesmo registro e não o que eu selecionei.

B

Seguinte.
Dentro do link vc precisa passar o parametro com o id do item selecionado eu tb estou fazendo dentro de um datatable
Dentro do seu managedbean vc precisa ter por exemplo um setId e chamar o servico com esse parametro

A

Brother vi um Post que acredito que pode ajudar… segue aí…

http://208.109.100.149/posts/list/15/83756.java

A

Amigo consegui fazer funcionar… pegando o elemento selecionado na dataTable.

Seguinte…

código da dataTable

&lt;rich:column&gt;
                &lt;s:link action="#{marcaBean.editar}"&gt;<img  />&lt;/s:link&gt;
                &lt;a4j:commandLink id="showItem" action="#{marcaBean.setSelectedMarca(marca)}"
						oncomplete="Richfaces.showModalPanel('conf_delete',{width:550, top:200});"&gt;
    					<img  />
	&lt;/a4j:commandLink&gt;
&lt;/rich:column&gt;

Código do ModalPanel

&lt;rich:modalPanel id="conf_delete" minHeight="100" minWidth="300"
		height="100" width="300"&gt;
		&lt;f:facet name="header"&gt;
			&lt;h:outputText value="Alerta" /&gt;
		&lt;/f:facet&gt;
			Deseja realmente excluir este registro?
			<br />
		<br />
		&lt;center&gt;
			&lt;s:link action="#{marcaBean.delete}"&gt;
				<img   />
			&lt;/s:link&gt; 
			&nbsp; 
			&lt;h:outputLink value="#" id="btn1"&gt;
				&lt;h:graphicImage value="../image/cancel.png"	style="margin-left:5px; cursor:pointer; border: none" /&gt;
					&lt;rich:componentControl for="conf_delete" attachTo="btn1" operation="hide" event="onclick" /&gt;
			&lt;/h:outputLink&gt;
		&lt;/center&gt;
&lt;/rich:modalPanel&gt;

Qualquer dúvida estamos aí…

B

Mas como vc sabe qual id vc vai deletar?
isso que eu não entendi

vlw pela força

A

na sua dataTable você passou a lista e existe um atributo var que determina cada objeto da data table conforme o meu exemplo abaixo:

Código do meu dataTable:

&lt;rich:dataTable width="100%" id="MarcaList" rows="10" columnsWidth="90%, *"
            value="#{marcas}" var="marca"&gt;
            &lt;f:facet name="header"&gt;
                &lt;rich:columnGroup&gt;
                    &lt;rich:column&gt;
                        &lt;h:outputText styleClass="headerText" value="Nome" /&gt;
                    &lt;/rich:column&gt;
                    &lt;rich:column&gt;
                        &lt;h:outputText styleClass="headerText" value="Actions" /&gt;
                    &lt;/rich:column&gt;
                &lt;/rich:columnGroup&gt;
            &lt;/f:facet&gt;

            &lt;rich:column filterBy="#{marca.nome}" sortBy="#{marca.nome}" filterEvent="onkeyup"&gt;
                &lt;h:outputText value="#{marca.nome}" /&gt;
            &lt;/rich:column&gt;
            &lt;rich:column&gt;
                &lt;s:link action="#{marcaBean.edit}"&gt;<img  />&lt;/s:link&gt;
                &lt;a4j:commandLink id="showItem" action="#{marcaBean.setSelectedMarca(marca)}"
						oncomplete="Richfaces.showModalPanel('conf_delete',{width:550, top:200});"&gt;
    					<img  />
				&lt;/a4j:commandLink&gt;
      	    &lt;/rich:column&gt;
		&lt;/rich:dataTable&gt;

Código do meu modalPanel

&lt;rich:modalPanel id="conf_delete" minHeight="100" minWidth="300"
		height="100" width="300"&gt;
		&lt;f:facet name="header"&gt;
			&lt;h:outputText value="Alerta" /&gt;
		&lt;/f:facet&gt;
			Deseja realmente excluir este registro?
			<br />
		<br />
		&lt;center&gt;
			&lt;s:link action="#{marcaBean.delete}"&gt;
				<img   />
			&lt;/s:link&gt; 
			&nbsp; 
			&lt;h:outputLink value="#" id="btn1"&gt;
				&lt;h:graphicImage value="../image/cancel.png"	style="margin-left:5px; cursor:pointer; border: none" /&gt;
					&lt;rich:componentControl for="conf_delete" attachTo="btn1" operation="hide" event="onclick" /&gt;
			&lt;/h:outputLink&gt;
		&lt;/center&gt;
	&lt;/rich:modalPanel&gt;

Espero ter ajudado.

B

Agora Rolou!!!

:lol:

Vlw brigadão pela sua ajuda!

&lt;a4j:commandLink oncomplete="Richfaces.showModalPanel('confirm-remove-modal')" reRender="confirm-remove-modal"&gt; &lt;h:graphicImage value="/template/resource/buttons/delete.png" style="border: 0px"/&gt; &lt;rich:toolTip&gt;&lt;h:outputText value="#{bundle.excluir}" /&gt;&lt;/rich:toolTip&gt; &lt;a4j:actionparam name="idUsuario" value="#{bean.idUsuario}" assignTo="#{Usuario.bean.idUsuario}"/&gt; &lt;/a4j:commandLink&gt;

&lt;ui:define name="remove-command"&gt; &lt;a4j:commandLink action="#{Usuario.delegateRemove}" reRender="grid" oncomplete="Richfaces.hideModalPanel('confirm-remove-modal')"&gt; &lt;h:graphicImage value="/template/resource/buttons/ok.png" style="border: 0px;"/&gt; &lt;rich:toolTip&gt;&lt;h:outputText value="#{bundle.sim}"/&gt;&lt;/rich:toolTip&gt; &lt;a4j:actionparam name="idUsuario" value="#{Usuario.bean.idUsuario}" assignTo="#{Usuario.bean.idUsuario}"/&gt; &lt;/a4j:commandLink&gt; &lt;/ui:define&gt;

Vlw pela ajuda brother

A

:slight_smile:

Precisando estamos aí.

F

Ola javamen,
onde eu acho um passo a passo para fazer esses popup modal que vcs estão falando? Eu estou usando o JSF puro no projeto e preciso desse modal funcionando assim. Hoje to fazendo com o Yahoo, mas esta dando problemas.

Tem algum lugar bem facil de entender esse richfaces? obrigado

A

Opa…

Amigo tem um lugar que acho que pode te ajudar.

http://livedemo.exadel.com/richfaces-demo/richfaces/pickList.jsf?c=pickList&tab=usage

Veja se ajuda.

Se não ajudar me diga o que precisa que coloco um código dos que eu fiz aqui.

Abraços

G

Galera,

Alguém já usou modalpanel com a4j:commandButton ???DEntro de um datatable ???

valeu

A

Você está dizendo uma chamada ao modalPanel através de um dataTable?
Se for isso eu já fiz.

Abraço

G

É isso mesmo !!!
Eu to tentando fazer, mas fica renderizando, ou seja, qdo ciclo no botao, ele ativa o modal, até td bem…mas logo em seguida ele chama o metodo do value do datatable…e ai fecha meu modal…
já passou por isso ?

teria um exemplod e como vc fez ???
valeu

Criado 8 de dezembro de 2008
Ultima resposta 20 de fev. de 2009
Respostas 15
Participantes 4