Resolvido da seguinte forma...

na classe ArquivoFrm.as


private function onResultConsultar(event:ResultEvent):void {
var arrCol : ArrayCollection = event.result as ArrayCollection;
dgProvider = arrCol != null ? arrCol : new ArrayCollection;
(stack.fGrid as FormGrid).dataProvider = dgProvider;
}


No mxml (canvas que tem o datagrid)

<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
public var dgProvider : ArrayCollection;
 public function set columns(columns:Array) : void {
dg.columns = columns;
}
 public function set dataProvider(dataProvider:ArrayCollection) : void {
dgProvider = dataProvider;
}
]]>
</mx:Script>

Então a cada resposta do server com o resultado da consulta eu seto o
datagrid.

Agora pergunto. Essa solução tem algum problema?

2010/3/21 Leonardo Ribeiro <[email protected]>

> Pessoal,
>
> Tenho o seguinte esquema de compomentes.
>
> 1 Panel, quem tem alguns botões e um viewstack
> 1 Canvas que tem um DataGrid e uns botões.
> 1 Canvas que tem um Form.
>
> Os dois canvas citados acima estão dentro da viewstack do Panel.
>
> Basicamente uma tela de cadastro simples.
> segue abaixo o trecho da Panel
>
> <mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml
> " creationComplete="{init()}">
> <mx:VBox width="100%" height="100%" horizontalScrollPolicy="off">
> <mx:Canvas width="100%" horizontalScrollPolicy="off">
>  <ns2:ButtonBar clickNovo="novo(this);"
>    clickFechar="fechar(this);"
>    clickConsultar="consultar();"
>    clickSalvar="salvar(this);"
>    clickAlterar="alterar(this);"
>    top="0" left="0" right="0">
>  </ns2:ButtonBar>
> </mx:Canvas>
>  <mx:Canvas width="100%" height="100%" horizontalScrollPolicy="off">
> <ns1:stackCliente id="stack" left="5" right="5" bottom="5" top="0">
>  </ns1:stackCliente>
> </mx:Canvas>
> </mx:VBox>
>
> <mx:Script source="arquivoFrm.as"/>
> </mx:Panel>
>
>
> O panel (referente ao mxml acima) tem o arquivo "arquivoFrm.as" acima onde
> tem os métodos referenciados
> no mxml. No creationComplete chamo o metodo "init()". Segue abaixo
>
> public function init():void {
> var col1 : DataGridColumn = new DataGridColumn();
> col1.dataField = "codigo";
>  col1.headerText = "Código";
> col1.width = 100;
>
> var col2 : DataGridColumn = new DataGridColumn();
>  col2.dataField = "nome";
> col2.headerText = "Nome";
> col2.width = 300;
>  var columns:Array = new Array(col1, col2);
>
> var formGrid : FormGrid = stack.fGrid; //Esse é o canvas que tem o datagrid
> que ta na viewstack
>  //formGrid.initGrid(dgProvider, columns); // comentado
> formGrid.dg.dataProvider = dgProvider;
>  formGrid.dg.columns = columns;
> }
>
> Tenho uma chamada a um metodo remoto que retorna uma lista para ser
> apresentada no dataGrid,
> mas não está apresentando. As colunas são criadas corretamente, mas os
> dados não são exibidos.
> E está retornando corretamente o ArrayCollection com as informações. Tentei
> ate criar o método
> "initGrid" como pode ser visto acima em comentário, mas não ajudou em
> nada...
>
> Abaixo segue o mxml do canvas que contem o datagrid
>
> <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml";
>  width="100%"
> height="100%"
> xmlns:ns1="gui.templates.*"
>  horizontalScrollPolicy="off">
> <mx:VBox width="100%" height="100%" horizontalScrollPolicy="off">
>  <mx:DataGrid x="0" y="0" width="100%" height="100%" id="dg"
> horizontalScrollPolicy="off">
>  </mx:DataGrid>
> <mx:ControlBar width="100%" x="0" y="700" horizontalAlign="center"
> height="36" horizontalScrollPolicy="off">
>  <mx:Button label="Primeira" labelPlacement="right" height="20"/>
> <mx:Button label="Anterior" height="20" labelPlacement="right"/>
>  <mx:Button label="Próxima" height="20" labelPlacement="left"/>
> <mx:Button label="Última" height="20" labelPlacement="left" />
>  </mx:ControlBar>
> </mx:VBox>
>  <mx:Script>
> <![CDATA[
> import mx.collections.ArrayCollection;
>  import mx.controls.Alert;
> [Bindable]
> public var dgProvider : ArrayCollection;
>  public function initGrid(dataProvider:ArrayCollection, columns:Array) :
> void {
>  dgProvider = dataProvider;
> dg.columns = columns;
> }
>  ]]>
> </mx:Script>
>  </mx:Canvas>
>
> OBS: O metodo initGrid não esta sendo usado (esta comentado a chamada dele)
> quando eu usei esse método
> eu defini a propriedade dataProvider do datagrid para o "dgProvider"
>
> Alguém sabe como eu posso ter o dataProvider e as coluna setados
> dinamicamente?
>
> Agradeço a atenção de todos
> --
> []'s
> Leonardo
>
> Linux User #488650
> Ubuntu User #27045
> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
>



-- 
[]'s
Leonardo

Linux User #488650
Ubuntu User #27045
Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para 
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

To unsubscribe from this group, send email to 
flexdev+unsubscribegooglegroups.com or reply to this email with the words 
"REMOVE ME" as the subject.

Responder a