ModalPanel abre antes de executar o bean responsavel [RESOLVIDO]

5 respostas
francis.junio

Bom dia a todos,
Estou com o seguinte problema. Eu tenho uma <rich:datatable com os registros vindos do banco de dados e a ultima coluna desse table é um <a4j:commandLink que ao clicar ele abre um <rich:modalpanel para ediçao do registro que cliquei. Até ai eu consegui fazer tudo. O problema é o seguinte, o modalpanel esta abrindo antes de executar o bean responsavel de fazer a seleçao do registro que foi clicado na tabela e depois de 1 ou 2 segundos no maximo que os valores sao atualizados no modalpanel.

vou postar o codigo para ficar melhor.

<f:view>
	<a4j:form id="tableForm">
		<rich:panel header="Titulo para o Painel" style="width: 800px;">

			<rich:dataTable value="#{dataTableMB.dt}" var="dt" rows="20"
				reRender="ds" id="simpletable">
				<f:facet name="header">
					<rich:columnGroup>
						<rich:column colspan="3">
							<h:outputText value="Titulo do dataTable" />
						</rich:column>
						<rich:column breakBefore="true" id="id">
							<h:outputText value="Codigo" />
						</rich:column>
						<rich:column id="nome">
							<h:outputText value="Nome" />
						</rich:column>
						<rich:column id="controles">
							<h:outputText value="Controles" />
						</rich:column>
					</rich:columnGroup>
				</f:facet>
				<rich:column filterBy="#{dt.id}" filterEvent="onkeyup">
					<h:outputText value="#{dt.id}" />
				</rich:column>
				<rich:column filterBy="#{dt.name}" filterEvent="onkeyup">
					<h:outputText value="#{dt.name}" />
				</rich:column>
				<rich:column>
					<a4j:commandLink id="btnTest" title="show"
						action="#{dataTableMB.select}" reRender="formP">
						<h:graphicImage id="image1" url="/images/close.png" />
						<rich:componentControl for="panel" attachTo="btnTest"
							operation="show" event="onclick" />
					</a4j:commandLink>					
				</rich:column>
				<f:facet name="footer">
					<rich:datascroller id="ds" renderIfSinglePage="false"></rich:datascroller>
				</f:facet>
			</rich:dataTable>
			<rich:spacer height="30px" />
		</rich:panel>
	</a4j:form>

	<rich:modalPanel id="panel" autosized="True">
		<f:facet name="header">
			<h:panelGroup>
				<h:outputText value="Modal Panel"></h:outputText>
			</h:panelGroup>
		</f:facet>
		<f:facet name="controls">
			<h:panelGroup>
				<h:graphicImage value="/images/close.png" id="hidelink" />
				<rich:componentControl for="panel" attachTo="hidelink"
					operation="hide" event="onclick" />
			</h:panelGroup>
		</f:facet>
		<a4j:form id="formP">
			<h:panelGroup>
				<h:panelGrid columns="1">
					<h:outputText value="Codigo" />
					<h:outputText id="codigo" value="#{dataTableMB.usuarioPanel.id}" />
				</h:panelGrid>

				<h:panelGrid columns="1">
					<h:outputText value="Nome" />
					<h:outputText id="nome" value="#{dataTableMB.usuarioPanel.name}" />
				</h:panelGrid>
			</h:panelGroup>
		</a4j:form>
	</rich:modalPanel>

agradeço muito a quem puder ajudar.

5 Respostas

javax.skol

Sim…
para isso vc deve fazer um reRender=“panel” para o mp renderizar com valores…

E tente com event=“oncomplete”… exemplo

<a:commandlink id=“showItem” action="#{backingBean.setSelectedItem(item)}" oncomplete=“Richfaces.showModalPanel(‘myModalPanel’,{width:550, top:200});” rerender=“myModalDiv”>

Click Here!

</a:commandlink>
felipe.sodre

Cara boa tarde, estou com o mesmo problema, não teria como colocar um delay de 1 seg par abrir o panel?

o que acontece que que quando seleciono um item da tabela fecho modal o item selecionado continua o mesmo, ai ao clicar em outro item abre o modal mostrando o valor antigo da um segundo o componente reenderiza e aparece o valor certo

walacy

Tenta assim:

&lt;a4j:commandLink id="btnTest" title="show" action="#{dataTableMB.select}" reRender="formP" oncomplete="Richfaces.showModalPanel('panel')"&gt; 
      &lt;h:graphicImage id="image1" url="/images/close.png" /&gt;  
&lt;/a4j:commandLink&gt;

Agora que vi, está bem semelhante ao que o amigo disse ai acima. [edit]

felipe.sodre

Puxa eh isso mesmo muito obrigado, francis coloque [RESOLVIDO] no post por favor.

valew!! :smiley:

francis.junio

Muito obrigado a todos. Funcionou perfeitamente.

vlw

Criado 7 de maio de 2010
Ultima resposta 7 de mai. de 2010
Respostas 5
Participantes 4