A marcação seria algo como :
package vo {
[RemoteClass(alias="vo.Pmod")]
public class Pmod {
public var atributoX:Number;
}
}
sendo que você tem que substituir vo.Pmod pelo namespace completo da sua
classe no C#.
2009/12/8 José Alexandre D'Abruzzo Pereira <[email protected]>
> Como vc tá usando .net, dá pra vc ter uma classe Pmod no flex.
> É só marcar ela como sendo a mesma classe do .net.
>
> No alert, vc teria então:
>
> var pmod:Pmod = dg.dataProvider;
> Alert.show(pmod.atributo_que_vai_exibir);
>
> Algo assim... Isto ajuda, mas não é necessário. Se você debugar, já vai
> descobrir onde está errado.
>
>
> 2009/12/8 Airton Toyansk <[email protected]>
>
>> 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
>>> >>>
>>>
>
>
> --
> 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
-~----------~----~----~----~------~----~------~--~---