Viewstack e reload de informação

2 respostas
jfv83

Olá pessoal,
estou iniciando em flex e tenho a seguinte dúvida;
como recarregar as informações de um componente que estão dentro de uma viewStack?
A minha viewStack está assim:

<mx:ViewStack id="viewstack1" left="10" right="10" top="10" bottom="10" width="100%" height="100%" change="onViewChange(event)">
          <mx:Box width="100%" height="100%">
                   <identificacao:identificacao width="100%" height="100%"/>
          </mx:Box>
          <mx:Box width="100%" height="100%">
                   <pais:pais width="100%" height="100%"/>
          </mx:Box>
          <mx:Box width="100%" height="100%">
                   <estado:estado width="100%" height="100%"/>
           </mx:Box>
           <mx:Box width="100%" height="100%">
                   <cidade:cidade width="100%" height="100%"/>
           </mx:Box>
           <mx:Box width="100%" height="100%">
                  <zona:zona width="100%" height="100%"/>
           </mx:Box>
           <mx:Box width="100%" height="100%">
                <bairro:bairro width="100%" height="100%"/>
           </mx:Box>
           <mx:Box width="100%" height="100%">
                <logradouro:logradouro width="100%" height="100%"/>
           </mx:Box>
           <mx:Box width="100%" height="100%">
                <imovel:imovel width="100%" height="100%" enabled="false"/>
            </mx:Box>
            <mx:Box width="100%" height="100%">
                <familia:familia width="100%" height="100%" enabled="false"/>
            </mx:Box>
            <mx:Box width="100%" height="100%">
                <membros:membros width="100%" height="100%" enabled="false"/>
            </mx:Box>
            <mx:Box width="100%" height="100%">
                <usuarios:usuarios width="100%" height="100%" enabled="false"/>
            </mx:Box>
</mx:ViewStack>

Cada um desses componentes recupera informações do banco de dados. O que eu preciso fazer é o reload dessas informações toda vez que esses componentes são mostrados (ou requisitador pelo usuario).
Já tentei fazer usando o evento change = “onViewChange” mas não consegui.

public function onViewChange(event: IndexChangedEvent):void
	{
		switch(event.newIndex)
		{
			case	1: 	//doReload();
						break;
						//doReload();
			case	2: break;
						//doReload();
			case	3: break;
		}
		
	}

Alguém poderia me dar uma luz?

2 Respostas

andre.gil

Hey jfv83,

Que tal usar o evento “show” das telas dentro do ViewStack? O único detalhe é que, pela maneira que o ViewStack foi programado, a primeira tela não vai disparar o “show” da primeira vez sempre. Então você precisa setar o “creationComplete” nela também. Exemplo:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">

	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;

			private function atualizaTela1():void
			{
				Alert.show("Tela 1 atualizada!");
			}

			private function atualizaTela2():void
			{
				Alert.show("Tela 2 atualizada!");
			}

			private function atualizaTela3():void
			{
				Alert.show("Tela 3 atualizada!");
			}
		]]>
	</mx:Script>

	<mx:LinkBar dataProvider="{vs}"/>

	<mx:ViewStack id="vs">
		<mx:Box label="Tela 1"
			creationComplete="atualizaTela1()" show="atualizaTela1()">
			<mx:Label text="Tela 1"/>
		</mx:Box>
		<mx:Box label="Tela 2"
			show="atualizaTela2()">
			<mx:Label text="Tela 2"/>
		</mx:Box>
		<mx:Box label="Tela 3"
			show="atualizaTela3()">
			<mx:Label text="Tela 3"/>
		</mx:Box>
	</mx:ViewStack>

</mx:Application>

[]'s

H

Tem uma gambi que aprendi esses dias…

Coloca visible = false no primeiro Box :slight_smile:

[]s,

Criado 28 de janeiro de 2010
Ultima resposta 1 de fev. de 2010
Respostas 2
Participantes 3