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