Tentei outra coisa.

Inseri o seguinte código:
private function alertDg():void
{
     var obj: Object = dg.dataProvider;
     Alert.show(obj.toString());
}

E o Alert me exibiu a seguinte mensagem:
[object Pmod]

Sendo que Pmod é o nome do meu source no RemoteObject (das classes no Flex e
no .Net).
É o mesmo resultado em usar
private function alertDg():void
{
     Alert.show(dg.dataProvider.toString());
}

Isso ajuda a descobrir o que pode ser?

Obrigado!

2009/12/8 José Alexandre D'Abruzzo Pereira <[email protected]>

> Sem ver o código todo fica difícil de saber o que é.
>
> Debuga tanto o método result do remote quanto antes de exibir o alert. Às
> vezes a propriedade tem algum erro de digitação. Debugando dá pra ver
> direito como está retornando do remote.
>
>
> 2009/12/8 Airton Toyansk <[email protected]>
>
>> Se insiro a verificação, não exibe Alert (e não dá erro).
>> Se comento o if, exibe o erro:
>> *Error: Unknown Property: 'X'*
>>
>> Ou seja, este objeto não tem o atributo X...
>>
>>
>> 2009/12/8 José Alexandre D'Abruzzo Pereira <[email protected]>
>>
>> private function exibeX(): void {
>>>   var obj: Object = dg.dataProvider;
>>>   if (obj.hasProperty("X")) // Como ele retorna um object, é bom
>>> verificar se aquele objeto tem o atributo X.
>>>     Alert.show(obj["X"]); // isto é o equivalente a obj.X;
>>> }
>>>
>>> 2009/12/8 Airton Toyansk <[email protected]>
>>>
>>>  E se eu carregar como um Object, dessa forma:
>>>> dg.dataProvider = e.result *as* Object;
>>>> Ele exibe no DataGrid do mesmo jeito. Mas como exibir no Alert (estou
>>>> com dificuldade mesmo sendo um objeto)?
>>>>
>>>> Obrigado!
>>>>
>>>> Airton Toyansk
>>>>
>>>> 2009/12/7 José Alexandre D'Abruzzo Pereira <[email protected]>
>>>>
>>>> Pode ser feito como vc fez. Aí na hora de dar o Alert é só fazer
>>>>> ArrayCollection(dg.dataProvider) e pegar o ArrayCollection e indexa de 
>>>>> zero.
>>>>> Vc vai ter um Object. Aí é só pegar a propriedade X do Object:
>>>>> obj.X ou obj["X"].
>>>>>
>>>>> Se vc recebe sempre um objeto, será que é necessário colocar num
>>>>> ArrayCollection? Não dá pra colocar direto num objeto? Isto também acaba
>>>>> dependendo do retorno do seu método na sua linguagem server-side. Se 
>>>>> estiver
>>>>> retornando um ArrayList ou algo assim, tudo bem. Se estiver retornando
>>>>> apenas um objeto, acho que não compensa colocar num ArrayCollection.
>>>>>
>>>>> Tem muitas formas de fazer o que você quer. Só que tem que escolher a
>>>>> melhor para deixar o swf mais leve e não sobrecarregar o cliente =)
>>>>>
>>>>> 2009/12/7 Airton Toyansk <[email protected]>
>>>>>
>>>>>  Na verdade, resolveria se este registro fosse exibido em um
>>>>>> TextInput. Mas não consegui carregá-lo num campo de texto no
>>>>>> creationComplete, só num DataGrid, dessa forma:
>>>>>>
>>>>>> public function getDataR(e:ResultEvent):void
>>>>>> {
>>>>>>       dg.dataProvider = e.result as ArrayCollection;
>>>>>> }
>>>>>>
>>>>>> Se estivesse num campo de texto, estaria resolvido mandar para o
>>>>>> Alert... Como posso fazer carregar num TextInput no método chamado no 
>>>>>> result
>>>>>> do RemoteObject?
>>>>>> Vou tentar também a opção no DataGrid.
>>>>>>
>>>>>> Obrigado!
>>>>>>
>>>>>> Airton Toyansk
>>>>>> 2009/12/6 José Alexandre D'Abruzzo Pereira <[email protected]>
>>>>>>
>>>>>>> Se é apenas uma linha tem que ser um DataGrid para exibir estes
>>>>>>> valores?
>>>>>>>
>>>>>>> De qualquer forma, é só fazer no creationComplete da sua aplicação,
>>>>>>> um método que pegue a primeira posição do dataProvider do DataGrid, 
>>>>>>> pegar o
>>>>>>> atributo X e dar o Alert.
>>>>>>>
>>>>>>> Se os dados estiverem vindo de um RemoteObject ou de um WebService,
>>>>>>> tem que ser no método chamdo no result destas operações.
>>>>>>>
>>>>>>> Se não der certo ainda, posta o seu código pra gente ver...
>>>>>>>
>>>>>>>
>>>>>>> 2009/12/6 Airton Toyansk <[email protected]>
>>>>>>>
>>>>>>>> @José,
>>>>>>>>
>>>>>>>> Quero poder exibir logo que carrego a aplicação.
>>>>>>>> No meu datagrid, tenho apenas uma coluna e uma linha (sempre). E
>>>>>>>> quero exibir este valor no Alert assim que o usuário entre, ou seja, 
>>>>>>>> sem
>>>>>>>> selecionar o registro (por isso minha dificuldade, pq não posso usar o
>>>>>>>> selectedItem).
>>>>>>>>
>>>>>>>> Airton Toyansk
>>>>>>>>
>>>>>>>> 2009/12/6 José Alexandre D'Abruzzo Pereira <[email protected]>
>>>>>>>>
>>>>>>>>> Mas em qual momento você quer exibir o Alert?
>>>>>>>>>
>>>>>>>>> Uma possibilidade seria no click da grid, selecionando uma linha.
>>>>>>>>> Aí neste método é só pegar dataGrid.selectedItem, que retorna um 
>>>>>>>>> Object.
>>>>>>>>> Este é o objeto que popula aquela linha do grid. Aí é só acessa o 
>>>>>>>>> atributo
>>>>>>>>> que popula a coluna X. Algo como:
>>>>>>>>>
>>>>>>>>> var obj: Object = dataGrid.selectedItem;
>>>>>>>>> Alert.show(obj.X);
>>>>>>>>>
>>>>>>>>> 2009/12/6 Airton Toyansk <[email protected]>
>>>>>>>>>
>>>>>>>>>  Pessoal,
>>>>>>>>>>
>>>>>>>>>> Existe alguma maneira de recuperar determinado dado de um datagrid
>>>>>>>>>> vindo de um BD e exibí-lo num Alert?
>>>>>>>>>> Algo como "exiba dado da coluna X e linha Y"?
>>>>>>>>>>
>>>>>>>>>> Agradeço as respostas.
>>>>>>>>>>
>>>>>>>>>> Airton Toyansk
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> José Alexandre D'Abruzzo Pereira
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> José Alexandre D'Abruzzo Pereira
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> José Alexandre D'Abruzzo Pereira
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>
>>>
>>> --
>>> José Alexandre D'Abruzzo Pereira
>>>
>>>
>>>
>>>
>>>
>
>
> --
> José Alexandre D'Abruzzo Pereira
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Responder a