Galera estou um problema que impaquei... x(
Teoricamente é simples, porem estou cego! aff...
Dentre um projeto, estou tentando converter os dados que pego de um datagrig
em Array, populado por uma ArrayColletion fictício. Porem não há jeito dele
converter o objeto que vem do tipo object em Array... Alguem pode me puxar a
orelha e me mostrar o simples que impaquei?! rsrsrs

Ja fiz alguns testes de casting, mas nada

Forte abraço!

A baixo passo os codigos do grid de test que fiz para achar o erro de forma
clara, como tambem as classes relacionadas....
Att.
Rubem Oliveira

###### Teste do datagrid #######
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009";
 xmlns:s="library://ns.adobe.com/flex/spark"
 xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300">
 <fx:Script>
<![CDATA[
import br.com.rubao.vo.UfVO;
import mx.collections.ArrayCollection;
 [Bindable]
public var dp:ArrayCollection = new ArrayCollection([{uf_id: "1",
 uf_name:"Rio Grande do Sul",  uf_abbreviature:"RS", uf_country: "Brasil"},
{uf_id: "2",  uf_name:"São Paulo",  uf_abbreviature:"SP", uf_country:
"Brasil"}]);
 public function testeArray():void
{
 // testando o tipo
trace (dgEstado.selectedItem);
//retorna object do tipo Object

                                //testando se  eh um tipo Array
trace (dgEstado.selectedItem is Array);
                                // resultado: Nao eh , eh um tipo Object
 /**UfVO a recebe no construtor um Array, onde eh separado cada propriedade

                                * via funcao da superclasse ModelVO
                                */

var uf:UfVO = new UfVO(dgEstado.selectedItem as Array);
//o que chega ao construtor da classe UFVO eh um valor nullo pois esta
chegando como tipo Object
//não esta convertendo(casting) para um tipo Array

/** outros testes no desespero:
* var uf:UfVO = new UfVO(Array(dgEstado.selectedItem));
* assim chega como Array, mas o conteudo nao efetua casting, continua como
tipo object/

}
 ]]>
</fx:Script>
 <fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<mx:DataGrid x="23" y="61" id="dgEstado"
 dataProvider="{dp}" itemClick="testeArray()" >
<mx:columns>
<mx:DataGridColumn headerText="uf_id" dataField="uf_id"/>
<mx:DataGridColumn headerText="uf_name" dataField="uf_name"/>
<mx:DataGridColumn headerText="uf_abbreviature"
dataField="uf_abbreviature"/>
<mx:DataGridColumn headerText="uf_country" dataField="uf_country"/>
</mx:columns>
</mx:DataGrid>
</s:Group>


###### UfVO #######

package br.com.rubao.vo
{
public class UfVO extends ModelVO
{
public function UfVO(data:Array=null)
{
setData(data);
}
 public var uf_id:int;
public var uf_name:String;
public var uf_abbreviature:String;
public var uf_country:String;

}
}

###### ModelVO #######

package br.com.rubao.vo
{
public class ModelVO
{
public function ModelVO()
{
}
 //funcao converte arrya dados usuario vindos do PHP
protected function setData(data:Array=null):void
{
//se for valido
if(data != null)
{
//executar enqt tiver dados no array data
//variavel key recebe o identificador da array
for(var key:String in data)
{
//se tiver propriedade o valor na array
if(this.hasOwnProperty(key))
{
//seta o valor de key com a propriedade(valor) que veio naquela posicao
array
this[key] = data[key];
}
 }
}
 }
}
}

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

Responder a