Só para esclarecer q parentApplication funciona, mas deixa o renderer fortemente acoplado com a app em questao. E se a função nao estiver na parent? E se usar modulos? E se....
Entao a melhor forma, sem dúvida, é usar eventos como o Fabio sugeriu. Outra coisa q funcionaria, para chamar metodos no mesmo componente em q está a grid, é usar o outerDocument, mas tb pode gerar acoplamento... daí depende de análise. []'s Em 29 de dezembro de 2010 14:06, Pablo Souza <[email protected]> escreveu: > Segue abaixo exemplo mostrando como disparar evento de dentro do > itemrenderer. > > Application: > > <?xml version="1.0" encoding="utf-8"?> > <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" > xmlns:s="library://ns.adobe.com/flex/spark" > xmlns:mx="library://ns.adobe.com/flex/mx" > > initialize="application1_initializeHandler(event)"> > <fx:Script> > <![CDATA[ > import mx.controls.Alert; > import mx.events.FlexEvent; > > protected function > application1_initializeHandler(event:FlexEvent):void > { > dataGrid.addEventListener("EXCLUIR_EVENT", > excluirHandler); > } > > private function excluirHandler(event:Event):void > { > Alert.show("Excluir o item"); > } > > ]]> > </fx:Script> > > <fx:Declarations> > <!-- Place non-visual elements (e.g., services, value > objects) here > --> > <fx:Model id="model"> > <root> > <nome>Pablo</nome> > </root> > </fx:Model> > </fx:Declarations> > > <s:layout> > <s:HorizontalLayout verticalAlign="middle" > horizontalAlign="center" / > > > </s:layout> > > <mx:DataGrid id="dataGrid" dataProvider="{model}"> > <mx:columns> > <mx:DataGridColumn headerText="Nome" > dataField="nome" /> > <mx:DataGridColumn headerText="Ação" > itemRenderer="ButtonItemRenderer" /> > </mx:columns> > </mx:DataGrid> > > </s:Application> > > > > ItemRenderer: > > <?xml version="1.0" encoding="utf-8"?> > <s:MXDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" > xmlns:s="library:// > ns.adobe.com/flex/spark" > xmlns:mx="library:// > ns.adobe.com/flex/mx" > focusEnabled="true"> > > <fx:Metadata> > [Event(name="EXCLUIR_EVENT",type="flash.events.Event")] > </fx:Metadata> > > <fx:Script> > <![CDATA[ > protected function > lblData_clickHandler(event:MouseEvent):void > { > dispatchEvent(new > Event("EXCLUIR_EVENT",true)); > } > ]]> > </fx:Script> > > <s:Button id="lblData" top="0" left="0" right="0" bottom="0" > label="Excluir" > click="lblData_clickHandler(event)" /> > > </s:MXDataGridItemRenderer> > > > > > Abs! > > > ------ > @Pablo_Souza > http://rectius.com.br > > > On Dec 29, 1:53 pm, Lorenzi <[email protected]> wrote: > > Legal com o parentApplication funcionou, Fabio poderia me passar um > > exemplo de como usar um evento neste caso, tenho interesse em saber > > como funciona este processo. > > > > Garto. > > > > On Dec 29, 1:41 pm, Helio Antonio Francisco Silva > > > > > > > > <[email protected]> wrote: > > > GERALMENTE eu uso parentApplication e nunca tive maiores problemas e > claro > > > isso no flex 3, no 4 ainda nao tentei... > > > > > 2010/12/29 fabiophx <[email protected]> > > > > > > Lorenzi, > > > > Vc pode usar parentApplication mas o melhor é disparar um evento > > > > bubbles, aí vc fica monitorando e executa o q for necessário. > > > > > > []s > > > > Fabio da Silva > > > >http://www.fabiophx.blogspot.com/ > > > > > > On Dec 29, 11:43 am, Lorenzi <[email protected]> wrote: > > > > > Legal, estava fazendo uns teste mas nao consegui fazer uma coisa? > > > > > > > Tipo tenho um itemrenderer que é um Button, ate ai ok mostra legal, > > > > > mas como fazer com que no clique do botão execute uma funcao na > minha > > > > > app ou seja na app que esta o grid? > > > > > > > On Dec 28, 1:08 pm, Helio Antonio Francisco Silva > > > > > > -- > > > > 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 emhttp:// > groups.google.com/group/flexdev > > > > > -- > > > *Hélio Antonio Fransico Silva* > > > Desenvolvedor web > > > Certificado Flash developer > > > Certificado Flash Design > > > Certificado web developer > > > Consultor Microsiga / Totvs > > > Desenvolvedor ADVPL / ASP > > > Analista de sistemas e ERP Sênior.- Hide quoted text - > > > > - Show quoted text - > > -- > 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 > -- Mario Junior http://blog.mariojunior.com/ @mariojunior -- 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
