[Resolvido]Problema com reRender em rich:dataTable

5 respostas
A

Olá pessoal,

Tenho um modalPanel, onde é inserido um registro em uma tabela filho da tabela que é exibida no dataTable. O botão esta configurado para dar um reRender no datatable para exibir o registro inserido, porém, o mesmo não funciona.

OBS: Tem um botao fora do modalPanel e esse sim, funciona normal!

Vlw

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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:ui="http://java.sun.com/jsf/facelets"
	xmlns:a4j="http://richfaces.org/a4j"
	xmlns:rich="http://richfaces.org/rich">

<ui:composition template="/templates/principal.xhtml">
	<head>
	<meta http-equiv="content-Type" content="text/html; charset=utf-8" />
	</head>
	<ui:define name="centro">
		<a4j:keepAlive beanName="processoImportacaoMB" />
		<a4j:loadScript id="js"
			src="resource:///resources/jquery.maskedinput-1.2.2.js"
			rendered="true" />
		<f:subview id="subviewImportacao">
			<rich:panel styleClass="panelPrincipal">
				<f:facet name="header">
					<h:outputText
						value="Operacional || Controle de Processos - Importação" />
				</f:facet>
				<h:form id="frm">
					<rich:toolBar>
						<h:outputLabel value="Pesquisa: " />
						<h:selectOneMenu value="#{processoImportacaoMB.pesquisa}">
							<f:selectItems value="#{processoImportacaoMB.tipoPesquisa}" />
							<a4j:support reRender="opCampos" event="onchange"
								ajaxSingle="true" />
						</h:selectOneMenu>

						<a4j:outputPanel id="opCampos">
							<h:selectOneMenu
								value="#{processoImportacaoMB.pesquisaSelectedField}"
								rendered="#{processoImportacaoMB.pesquisa == 2}">
								<f:selectItems value="#{processoImportacaoMB.pesquisaFieldList}" />
							</h:selectOneMenu>
							<h:inputText value="#{processoImportacaoMB.pesquisaValue}"
								size="15" />
						</a4j:outputPanel>

						<a4j:commandButton value="Pesquisar" id="btn" />
						<rich:spacer width="100" />
						<a4j:commandButton value="Novo Processo"
							oncomplete="javascript:Richfaces.showModalPanel('panelModalAbreProcesso');" />
					</rich:toolBar>

					<rich:dataTable id="processosLista" rows="6" columnClasses="col"
						value="#{processoImportacaoMB.pesquisar}" var="processo">
						<f:facet name="header">
							<rich:columnGroup>
								<h:column>
									<h:outputText styleClass="headerText" value="Processo" />
								</h:column>
								<h:column>
									<h:outputText styleClass="headerText" value="Importador" />
								</h:column>
								<h:column>
									<h:outputText styleClass="headerText" value="Ref. Cliente" />
								</h:column>
								<h:column>
									<h:outputText styleClass="headerText" value="Status" />
								</h:column>
								<h:column>
									<h:outputText styleClass="headerText" value="Ação" />
								</h:column>
							</rich:columnGroup>
						</f:facet>
						<rich:column width="60">
							<h:outputText value="#{processo.nref}" />
						</rich:column>
						<rich:column width="150">
							<h:outputText value="#{processo.cliente.apelido}" />
						</rich:column>
						<rich:column width="120">
							<h:outputText value="#{processo.sref}" />
						</rich:column>
						<rich:column width="335">
							<h:dataTable value="#{processo.followup}" var="flpStatus"
								rows="1" cellpadding="0" cellspacing="0" border="0">
								<h:column>
									<h:outputText value="#{flpStatus.insert_data}">
										<f:convertDateTime pattern="dd/MM/yyyy HH:mm" locale="pt_br"
											timeZone="America/Sao_Paulo" />
									</h:outputText>
									<rich:spacer width="10" />
									<h:outputText value="#{flpStatus.posicaoFlp.descricao}" />
									<br />
									<h:outputText value="#{flpStatus.observacoes}" />
								</h:column>
							</h:dataTable>
						</rich:column>

						<rich:column width="50" align="center">
							<h:commandButton actionListener="#{processoImportacaoMB.update}"
								title="Alterar"
								image="/imagens/ImagensUtilizadas/16x16/viewmag.png">
								<f:param id="editId" value="#{processo.id}" />
							</h:commandButton>
							<a4j:commandButton
								image="/imagens/ImagensUtilizadas/16x16/view_tree.png"
								actionListener="#{processoImportacaoMB.insertRegFlp}"
								title="Inserir Posição de Follow-Up"
								oncomplete="javascript:Richfaces.showModalPanel('panelInserePosicaoFlp');"
								reRender="processosLista">
								<f:param id="insertRegFlp" value="#{processo.id}"
									name="insertRegFlp" />
							</a4j:commandButton>
						</rich:column>
						<f:facet name="footer">
							<rich:datascroller align="left" for="processosLista"
								maxPages="20" />
						</f:facet>
					</rich:dataTable>


					<rich:modalPanel id="panelInserePosicaoFlp" autosized="false"
						keepVisualState="true" width="350" height="200">
						<f:facet name="header">
							<h:outputText value="Adicionar Posição de Follow-Up" />
						</f:facet>
						<f:facet name="controls">
							<span style="cursor: pointer"
								onclick="javascript:Richfaces.hideModalPanel('panelInserePosicaoFlp')">X</span>
						</f:facet>
						<h:panelGroup layout="block" styleClass="scrolls">

							<h:panelGrid columns="1">
								<h:outputText
									value="Processo: #{processoImportacaoMB.processo.nref}"
									styleClass="Lookup" />
								<h:outputText value="Status" />
								<h:selectOneMenu
									value="#{processoImportacaoMB.followup.posicaoflp_id}">
									<f:selectItems value="#{processoImportacaoMB.comboPosicaoFlp}" />
								</h:selectOneMenu>
								<h:outputText value="Obs" />
								<h:inputTextarea
									value="#{processoImportacaoMB.followup.observacoes}" rows="4"
									cols="50" />
							</h:panelGrid>

							<a4j:commandButton
								actionListener="#{processoImportacaoMB.saveRegFlp}"
								onclick="javascript:Richfaces.hideModalPanel('panelInserePosicaoFlp')"
								value="Salvar" reRender="processosLista">
							</a4j:commandButton>
							<h:commandButton
								onclick="javascript:Richfaces.hideModalPanel('panelModalAbreProcesso')"
								value="Cancelar" />

						</h:panelGroup>
					</rich:modalPanel>

				</h:form>
			</rich:panel>
		</f:subview>
	</ui:define>
</ui:composition>
</html>

5 Respostas

J

Não sei se tem relação, mas uma vez tive uma problema parecido, resolvi colocando pra o botão chamar um metodo no faces. O metodo somente tinha um return.

A

Mas eu preciso que atualize automaticamente após incluir o registro.

Estou fazendo uns testes com o A4j:Poll, acho que vai resolver.

W

Tenta colocar a sua modalPanel fora do form…
E dentro dela vc cria um novo form…

A

Já tentei, mas tb nao deu certo.

A

Funcionou com o A4j:Poll valeu galera!

Criado 15 de julho de 2010
Ultima resposta 16 de jul. de 2010
Respostas 5
Participantes 3