Ajuda - atualizar datatable após delete (fiz conforme exemplo do site e não atualiza)

5 respostas
I

Bom Dia!

Pessoal, tenho uma datatable q na ultima coluna a função é excluir. Qdo clico o registro é excluido do banco, o metodo funciona certinho, porém a datatable não é atualizada e sou obrigada a clicar no search novamente para poder atualizar a tabela.

Segui o exemplo do site do Richfaces, porém não esta atualizando, alguem pode ajudar a solucionar??

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition
		xmlns="http://www.w3.org/1999/xhtml" 
		xmlns:h="http://java.sun.com/jsf/html" 
		xmlns:f="http://java.sun.com/jsf/core"
      	xmlns:ui="http://java.sun.com/jsf/facelets" 
      	xmlns:a4j="http://richfaces.org/a4j" 
      	xmlns:rich="http://richfaces.org/rich"
      	xmlns:s="http://jboss.com/products/seam/taglib"
		template="/pages/template/layout.xhtml">        
	<ui:define name="title">[Configuration][Conta][Search]</ui:define>      
	<ui:define name="contents">      
           <div> 
			 <h:form>	
			 <rich:panel id="panelConta" width="80%" style="padding:0" bodyClass="rich-laguna-panel-no-header"> 
              
             	<rich:datascroller align="center" for="tableConta" maxPages="50" width="100%"
		            page="#{dataScrollerBean.scrollerPage}" reRender="ds" id="sc1" />		     
		             
		        <rich:spacer height="10" />             	
				
				<a4j:region>					
				<rich:dataTable id="tableConta" 
								value="#{contaManager.contaList}" 
								var="_conta"	width="80%" align="center" rows="30" 
								rendered="#{not empty contaManager.contaList}">						 
						
					 <f:facet name="header">
		                <rich:columnGroup>
		                    <rich:column colspan="5" > 
		                        <h:outputText value="Contas"/>
		                    </rich:column>  
		                    <rich:column breakBefore="true">
                                <h:outputText value="#{labels['contas.Name']}"/>
                            </rich:column>
                            <rich:column>
                                <h:outputText value="#{labels['CLIENT']}"/>
                            </rich:column>
                            <rich:column>
                                <h:outputText value="#{labels['contas.Type']}"/>
                            </rich:column>
                            <rich:column>
                                <h:outputText value="#{labels['contas.Operational_Condition']}"/>
                            </rich:column> 
                            <rich:column>
								<h:outputText value="Excluir" />
							</rich:column> 
		                </rich:columnGroup>
		            </f:facet>
		            
		            <rich:column sortBy="#{_conta.name}" filterBy="#{_conta.name}" filterEvent="onkeyup">	
						<a4j:commandLink id="editConta" action="#{contaManager.editConta(_conta)}"
							ajaxSingle="true">
							<h:outputText value="#{_conta.name}" />
						</a4j:commandLink>
					</rich:column>
								
					<rich:column sortBy="#{_conta.organization.name}" filterBy="#{_conta.organization.name}" filterEvent="onkeyup">	
							<h:outputText value="#{_conta.organization.name}"/>								
					</rich:column>	
										
					<rich:column sortBy="#{_conta.type.label}" filterBy="#{_conta.type.label}" filterEvent="onkeyup" >							
						<h:outputText value="#{labels[_conta.type.label]}"  />
					</rich:column>
					
					<rich:column sortBy="#{_conta.operationalCondition.label}" filterBy="#{_conta.operationalCondition.label}" filterEvent="onkeyup">							
						<h:outputText value="#{labels[_conta.operationalCondition.label]}" />
					</rich:column>	
					
					<rich:column align="center">	
						<a4j:form>						
							<a4j:commandLink ajaxSingle="true" id="deletelink" 
								oncomplete="#{rich:component('deletePanel')}.show()" >
								<a4j:actionparam name="org" 
												value="#{_conta.id}" 
												assignTo="#{contaManager.idContaDelete}"/>
								<h:graphicImage value="/images/delete.gif"
									style="border:0" />
							</a4j:commandLink>
						</a4j:form>
						<rich:toolTip for="deletelink" value="#{labels['delete']}" />
					</rich:column>				
					 
		            <f:facet name="footer">
		               <rich:datascroller id="ds" reRender="sc1"></rich:datascroller>
		            </f:facet>	
		                        
	        	</rich:dataTable> 
	        	</a4j:region>
	        	
             </rich:panel> 
             </h:form>
            </div>
            
		    <!-- DELETE PANEL -->
			<rich:modalPanel id="deletePanel" autosized="true" width="200">
		        <f:facet name="header">
		            <h:outputText value="#{messages['conta.remove']}"
		                style="padding-right:15px;" />
		        </f:facet>
		        <f:facet name="controls">
		            <h:panelGroup>
		                <h:graphicImage value="/images/close.png"
		                    styleClass="hidelink" id="hidelink2" />
		                <rich:componentControl for="deletePanel" attachTo="hidelink2"
		                    operation="hide" event="onclick" />
		            </h:panelGroup>
		        </f:facet>
		        <h:form>
		            <table width="100%">
		                <tbody>
		                    <tr>
		                        <td align="center" width="50%">
		                        	<a4j:commandButton value="Yes"
			                            ajaxSingle="true" action="#{contaManager.delete()}"
			                            oncomplete="#{rich:component('deletePanel')}.hide();"
			                            reRender="panelConta,tableConta" 
			                        />
		                        </td>
		                        <td align="center" width="50%">
		                        	<a4j:commandButton
			                            value="Cancel"
			                            onclick="#{rich:component('deletePanel')}.hide();return false;" 
			                        />
		                        </td>
		                    </tr>
		                </tbody>
		            </table>
		        </h:form>
	    	</rich:modalPanel>

             <a4j:status onstart="#{rich:component('wait')}.show()" onstop="#{rich:component('wait')}.hide()" />
		     <rich:modalPanel id="wait" autosized="true" width="150" height="50" moveable="false" resizeable="false">
		        <f:facet name="header">
		            <h:outputText value="Processing" />
		        </f:facet>
		        	<h:outputText value="Wait Please..." />
		     </rich:modalPanel>
    
	</ui:define> 
</ui:composition>

Agradeço desde já.

5 Respostas

caputojf1

tentou no botao chamar update=“tableConta” ???

I

Desculpa, não entendi.

Como assim?

caputojf1

Não sei se no Rich funciona assim mas no primefaces serio algo do tipo:
[code][
ajaxSingle="true" action="#{contaManager.delete()}"
oncomplete="#{rich:component('deletePanel')}.hide();"
reRender="panelConta,tableConta" update="tableConta"
/>
/code]

I
caputojf1:
Não sei se no Rich funciona assim mas no primefaces serio algo do tipo: [code][ /code]

Eu nunca vi essa forma no Richfaces, de qq forma irei tentar.

Obrigada!

I

Não funcionou.

Acredito q seja algo relacionado a reRender, ajax … mais n to conseguindo achar o ponto certo.

Alguém???

Grata.

Criado 28 de abril de 2011
Ultima resposta 28 de abr. de 2011
Respostas 5
Participantes 2