Excuir Dado no MODAL PANEL

10 respostas
L

Ola pessoal,

Gostaria de saber o seguinte:

Eu tenho uma dataTable que mostra codigo, assunto e descricao de um aviso, junto com os botões editar e deletar.

No botão deletar eu abro um modalPanel, ai eu queria saber como eu pego os dados da tabela pra mostrar o que vai ser excluido e como eu pego o codigo pra excluir o dado por ele?

Segue o codigo:

<rich:dataTable id="dtbl_avisos" value="#{AvisoMB.avisos}" var="item"
			align="center">
			<h:column>
				<f:facet name="header">
					<h:outputText value="Codigo" />
				</f:facet>
				<h:outputText value="#{item.cod_func}" />
			</h:column>
			<h:column>
				<f:facet name="header">
					<h:outputText value="Quadro de Avisos" />
				</f:facet>
				<h:outputLink>
					<h:outputText value="#{item.assunto}" />
				</h:outputLink>
			</h:column>
			<h:column>
				<f:facet name="header">
					<h:outputText value="Editar" />
				</f:facet>
				<a4j:commandButton  />
				
				<a4j:commandButton id="editar_dado" image="/Imagens/alterar.gif" href="#" value="Editar"
				onclick="#{rich:component('panelEdita')}.show()" alt="Editar" />
					<rich:modalPanel id="panelEdita" width="320" height="400" left="auto"
						top="auto" style="text-align:center;">
						<f:facet name="header">Editar</f:facet>
						<br />
						<h:outputText value="Nome:" />
						<h:selectOneMenu id="cbb_consAvisoAllLogins"
							value="#{AvisoMB.login.codigo}"
							style="FONT-FAMILY: 'Times New Roman'; FONT-SIZE: medium;">
								<f:selectItems value="#{LoginMB.allLogins}" />
						</h:selectOneMenu>
						<br />
						<br />
						<h:outputText value="Assunto:  " />
						<h:inputText value="#{AvisoMB.aviso.assunto}" />
						<br />
						<br />
						<h:outputText value="Descricao:  " />
						<h:inputText value="#{AvisoMB.aviso.descricao}" />
						<br />
						<br />
						<h:outputText
							value="Voce deseja realmente atualizar esses dados: " />
						<br />
						<br />
						<a4j:commandButton id="btn_OK_editar" value="SIM"
							action="#{AvisoMB.atualizaAviso}" />
						<a4j:commandButton id="btn_CANCELAR" value="NAO"
						onclick="#{rich:component('panelEdita')}.hide()" />
					</rich:modalPanel>
			</h:column>
			<h:column>
				<f:facet name="header">
					<h:outputText value="Excluir" />
				</f:facet>
				<a4j:commandButton id="excluir_dado" image="/Imagens/delete.gif" href="#" value="Deletar"
				onclick="#{rich:component('panelDeleta')}.show()" alt="Deletar" />
					<rich:modalPanel id="panelDeleta" width="320" height="245" left="auto"
						top="auto" style="text-align:center;">
						<f:facet name="header">Excluir</f:facet>
						<br />
						<h:outputText
							value="Os seguintes dados serao deletados da base de dados: " />
						<br />
						<br />
						<br />
						<h:outputText value="Codigo: " />
						<br />
						<h:outputText value="Assunto: " />
						<br />
						<br />
						<br />
						<h:outputText
							value="Voce deseja realmente deleta-los: " />
						<br />
						<br />
						<a4j:commandButton id="btn_OK_excluir" value="SIM"
							action="#{AvisoMB.deletaAviso}" />
						<a4j:commandButton id="btn_CANCELAR" value="NAO"
						onclick="#{rich:component('panelDeleta')}.hide()" />
					</rich:modalPanel>
			</h:column>
		</rich:dataTable>

Vlw,

Até mais.

10 Respostas

A

cara,

primeiro, tire esses seus modalpanel de dentro do datatable.
segundo, vc vai utilizar dentro do seu commandButton a tab f:setPropertyActionListener, com isso vc vai setar um objeto no seu MB, depois é pegar esse objeto e pegar as propriedades que vc quer.

t+

L

alissonvla valeu pela dica cara, agora como eu faço para setar mais de um campo, (codigo, assunto, descricao)? se é que da pra fazer.

Eu crio varios <f:setPropertyActionListener>?

Obrigado.

A

entao cara,

vc nao vai setar um propriedade, vc vai setar o objeto, segue um exemplo

http://www.mkyong.com/jsf2/jsf-2-setpropertyactionlistener-example/

t+

L

tem q ter o componente na página pra usar o <f:setPropertyActionListener>?

A

nao,
vc vai colocar ele dentro do seu commandButton

t+

L
<a4j:commandButton id="excluir_dado" image="/Imagens/delete.gif"
					href="#" value="Deletar"
					onclick="#{rich:component('panelDeleta_home')}.show()" alt="Deletar" >
				<f:setPropertyActionListener target="#{AvisoMB.aviso}"
					value="#{item}"></f:setPropertyActionListener>
				</a4j:commandButton>

meu código ficou assim, só que quando eu pego ele ele vem tudo vazio e 0.

A

cara,

coloque a propriedade reRender no seu commandButton e nele vc vai colocar os id’s que vc querer atualizar no seu modaPanel.

t+

L

eu consigo fazer condições com esse reRender?

a propósito, agora a minha tabela ela fica retornando valores nulos quando eu recarrego a page, porque?

L

eu consigo fazer condições com esse reRender?

a propósito, agora a minha tabela ela fica retornando valores nulos quando eu recarrego a page, porque?

A

cara,

vc vai ter isso

<a4j:commandButton id="excluir_dado" image="/Imagens/delete.gif"  
                    href="#" value="Deletar"  reRender="ID"
                    onclick="#{rich:component('panelDeleta_home')}.show()" alt="Deletar" >  
                <f:setPropertyActionListener target="#{AvisoMB.aviso}"  
                    value="#{item}"></f:setPropertyActionListener>  
                </a4j:commandButton>

t+

Criado 4 de novembro de 2011
Ultima resposta 4 de nov. de 2011
Respostas 10
Participantes 2