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

Responder a