POG??
 
Tirar o editorDataField e troca isso:
 
status = true;

por:
 
super.data.mostrar = true;
 
super.data é o seu dataProvider, então você força a atualização do dataProvider 
e não
fica dependendo de editor, etc.
 
[]s
Fábio


________________________________

        De: [email protected] [mailto:[EMAIL PROTECTED] Em nome de Elvis 
Fernandes
        Enviada em: segunda-feira, 25 de fevereiro de 2008 11:22
        Para: [email protected]
        Assunto: [QUAR][flexdev] Re: A Velha história da DataGrid, ItemRenderer 
e RadioButton...
        Prioridade: Baixa
        
        
        Imaginei que não ia conseguir explicar o problema sem o exemplo ... rs 
...
        
        Logo abaixo está um exemplo simplificado. Percebi que sempre que usamos 
um itemEditor num DataGrid, após a modificação do valor, ele só é "efetivado" 
no objeto "data" quando o foco sai da linha do DataGrid ... esse é o meu 
problema ... após clicar no botão, ele precisa automagicamente mudar o valor de 
uma propriedade do objeto "data", que é o que define o status desse próprio 
botão ...
        
        Pra resolver isso, eu mudo o foco para o próprio DG, aí ele atualiza o 
"data" ... mas se eu clicar em um botão e logo em seguida clicar em outro botão 
de outra linha, ele não atualiza o status do segundo botão clicado ...
        
        Se vocês puderem me indicar uma solução menos "POG", ficarei muito 
agradecido! =)
        
        Valeu!!!!!!!!!!!!
        
        <mx:Canvas .............>
        
            <mx:Script>
                <![CDATA[
                    public function _ligar():void {
                        //Alguma ação
                        meuDG.setFocus();
                    }
                    
                    public function _desligar():void {
                        //Alguma ação
                    }
                ]]>
            </mx:Script>
        
            <mx:Component id="botoesOpcoes">
                <mx:HBox>
                    <mx:Script>
                        <![CDATA[
                            [Bindable]
                            public var status:Boolean;
                            
                            private function ligar():void {
                                status = true;
                                outerDocument._ligar();
                            }
                            
                            private function desligar():void {
                                outerDocument._desligar();
                            }
                        ]]>
                    </mx:Script>
                    <mx:Button id="btnLigar" enabled="{!data.mostrar}" 
label="Ligar" click="{ligar()}"/>
                    <mx:Button id="btnDesligar" enabled="{!data.mostrar}" 
label="Desligar" click="{desligar()}"/>
                </mx:HBox>
            </mx:Component>
        
            <mx:Canvas width="100%" height="100%">
                <mx:DataGrid id="meuDG"
                    dataProvider="{dataProvider}" 
                    editable="true">
                    <mx:columns>
                        <mx:AlgumasColunas ...... />
                        <mx:DataGridColumn headerText="Opções" 
dataField="mostrar" itemRenderer="{botoesOpcoes}" editorDataField="status" 
rendererIsEditor="true" />
                    </mx:columns>
                </mx:DataGrid>
            </mx:Canvas>
        </mx:Canvas>
        
        
        
        
        2008/2/25 Beck Novaes <[EMAIL PROTECTED]>:
        


                Olá Elvis,
                
                Será que você conseguiria isolar este comportamente num 
exemplinho
                simples?
                
                []'s
                Beck Novaes
                
                On Feb 24, 12:53 pm, Elvis Fernandes <[EMAIL PROTECTED]> wrote:
                > Olá, pessoal!
                >
                > Aproveitando a carona neste tópico, gostaria de pedir uma 
ajuda:
                >
                > Usando as dicas do Beck (editorDataField, editable p/ o DG, 
etc)
                > consegui criar meu itemEditor do jeito que eu precisava 
(valeu,
                > Beck!). Só que o problema é que, depois de atualizar o valor 
do objeto
                > "data", ele não é mostrado no DataGrid até que ele perca o 
foco...
                >
                > Eu pensei em mudar o foco para outro componente em uma função 
externa
                > ao itemRenderer que é chamada na minha aplicação (tenho um 
botão no
                > meu itemRenderer), mas gostaria de saber se não existe uma 
solução
                > menos "POG" pra isso ...
                >
                > Tentei usar dg.invalidateDisplayList e outras coisas do tipo, 
mas não
                > deu (sem dúvida tentei fazer qquer besteira ...).
                >
                > Valeu!!!!!
                >
                > Elvis Fernandes
                >
                > On 23 fev, 02:40, Beck Novaes <[EMAIL PROTECTED]> wrote:
                >
                > > Muito obrigado Rafael por ter entendido o espírito da 
brincadeira.
                > > Sinceramente eu gostaria que as pessoas, além de aproveitar 
a
                > > informação, dessem boas risadas com a explicação (se é que 
fui bem
                > > sucedido no que diz respeito à didática). Quem disse que 
não podemos
                > > nos divertir enquanto aprendemos?
                >
                > > []'s
                > > Beck Novaes
                >
                > > On 22 fev, 20:44, "Rafael D. Araujo" <[EMAIL PROTECTED]> 
wrote:
                >
                > > > Hehe, gostei da resposta.
                > > > Cheguei a usar o editorDataField, mas descartei-o porque 
(acho) ele
                > > > procurava a propriedade informada no editorDataField 
dentro do componente
                > > > filho logo abaixo do mx:component, no meu caso dentro do 
VBox (e com isso
                > > > dava um null por não achar a propriedade nele).
                > > > Segunda-feira vou analisar melhor meu caso pra ver o que 
posso fazer.
                >
                > > > On 22/02/2008, Marcelo Savioli <[EMAIL PROTECTED]> wrote:
                >
                > > > > Hahahahaha... muito bom Beck.. muito bom!
                >
                > > > > On 2/22/08, Beck Novaes <[EMAIL PROTECTED]> wrote:
                >
                > > > > > Problemas com Item Renderers ou Item Editors? O seu 
Item Renderer/
                > > > > > Editor não mantêm o estado? O seu Item 
Renderer/Editor não muda o
                > > > > > valor do item da linha correspondente?
                >
                > > > > > SEUS PROBLEMAS ACABARAM!
                > > > > > Ligue 011 1406 e peça já o "editorDataField".
                >
                > > > > > O "editorDataField " é testado e aprovado pelos 
Laboratórios Adobe e
                > > > > > nós garantimos: Ele funciona!
                >
                > > > > > Caso Real (exemplo que não funciona):
                > > > > > ============================
                >
                > > > > > <mx:DataGrid>
                > > > > >         <mx:dataProvider>
                > > > > >                 <mx:Object col1="Col 1.1 Data" 
col2="Col 1.2 Data"
                > > > > > selected="false"/
                >
                > > > > >                 <mx:Object col1="Col 2.1 Data" 
col2="Col 2.2 Data"
                > > > > > selected="true"/>
                > > > > >                 <mx:Object col1="Col 3.1 Data" 
col2="Col 3.2 Data"
                > > > > > selected="false"/
                >
                > > > > >                 <mx:Object col1="Col 4.1 Data" 
col2="Col 4.2 Data"
                > > > > > selected="false"/
                >
                > > > > >                 <mx:Object col1="Col 5.1 Data" 
col2="Col 5.2 Data"
                > > > > > selected="false"/
                >
                > > > > >                 <mx:Object col1="Col 6.1 Data" 
col2="Col 6.2 Data"
                > > > > > selected="false"/
                >
                > > > > >                 <mx:Object col1="Col 7.1 Data" 
col2="Col 7.2 Data"
                > > > > > selected="false"/
                >
                > > > > >                 <mx:Object col1="Col 8.1 Data" 
col2="Col 8.2 Data"
                > > > > > selected="false"/
                >
                > > > > >         </mx:dataProvider>
                > > > > >         <mx:columns>
                > > > > >                 <mx:DataGridColumn dataField="col1" 
headerText="Col 1"/>
                > > > > >                 <mx:DataGridColumn dataField="col2" 
headerText="Col 2"/>
                > > > > >                 <mx:DataGridColumn 
dataField="selected"
                > > > > > headerText="Selected">
                > > > > >                         <mx:itemRenderer>
                > > > > >                                 <mx:Component>
                > > > > >                                         <mx:CheckBox 
selected="{
                > > > > > data.selected}"/>
                > > > > >                                 </mx:Component>
                > > > > >                         </mx:itemRenderer>
                > > > > >                 </mx:DataGridColumn>
                > > > > >         </mx:columns>
                > > > > > </mx:DataGrid>
                >
                > > > > > Depoimento de um programador Flex:
                > > > > > ===========================
                > > > > > "Eu desenvolvi o código acima, mas ao executá-lo, 
toda vez que eu
                > > > > > marco um CheckBox na ultima linha do DataGrid e faço 
scroll ele perde
                > > > > > o estado."
                >
                > > > > > Outro programador:
                > > > > > ==============
                > > > > > "Eu também já vi algo parecido, e ao ver o valor dos 
objetos eu
                > > > > > percebi que eles não estavam sendo atualizados 
conforme eu marcava o
                > > > > > CheckBox."
                >
                > > > > > Não se preocupem. Estes são casos comuns. Mas veja 
como o super
                > > > > > "editorDataField" pode resolver o seu problema:
                >
                > > > > > Caso Real (exemplo que funciona):
                > > > > > =========================
                > > > > > <mx:DataGrid editable="true">
                > > > > >         <mx:dataProvider>
                > > > > >                 <mx:Object col1="Col 1.1 Data" 
col2="Col 1.2 Data"
                > > > > > selected="false"/
                >
                > > > > >                 <mx:Object col1="Col 2.1 Data" 
col2="Col 2.2 Data"
                > > > > > selected="true"/>
                > > > > >                 <mx:Object col1="Col 3.1 Data" 
col2="Col 3.2 Data"
                > > > > > selected="false"/
                >
                > > > > >                 <mx:Object col1="Col 4.1 Data" 
col2="Col 4.2 Data"
                > > > > > selected="false"/
                >
                > > > > >                 <mx:Object col1="Col 5.1 Data" 
col2="Col 5.2 Data"
                > > > > > selected="false"/
                >
                > > > > >                 <mx:Object col1="Col 6.1 Data" 
col2="Col 6.2 Data"
                > > > > > selected="false"/
                >
                > > > > >                 <mx:Object col1="Col 7.1 Data" 
col2="Col 7.2 Data"
                > > > > > selected="false"/
                >
                > > > > >                 <mx:Object col1="Col 8.1 Data" 
col2="Col 8.2 Data"
                > > > > > selected="false"/
                >
                > > > > >         </mx:dataProvider>
                > > > > >         <mx:columns>
                > > > > >                 <mx:DataGridColumn dataField="col1" 
headerText="Col 1"
                > > > > > editable="false"/>
                > > > > >                 <mx:DataGridColumn dataField="col2" 
headerText="Col 2"
                > > > > > editable="false"/>
                > > > > >                 <mx:DataGridColumn 
dataField="selected"
                > > > > > headerText="Selected"
                > > > > >                         rendererIsEditor="true"
                > > > > > editorDataField="selected">
                > > > > >                         <mx:itemRenderer>
                > > > > >                                 <mx:Component>
                > > > > >                                         <mx:CheckBox 
selected="{
                > > > > > data.selected}"/>
                > > > > >                                 </mx:Component>
                > > > > >                         </mx:itemRenderer>
                > > > > >                 </mx:DataGridColumn>
                > > > > >         </mx:columns>
                > > > > > </mx:DataGrid>
                >
                > > > > > Depoimento de um programador Flex:
                > > > > > ===========================
                > > > > > "Incrível! Depois de usar o super ultra plus 
'editorDataField' os meus
                > > > > > problemas acabaram. Agora eu posso fazer scroll a 
vontade e tudo
                > > > > > funciona perfeitamente".
                >
                > > > > > Outro programador:
                > > > > > ==============
                > > > > > "Depois de usar o 'editorDataField' a minha vida 
mudou completamente.
                > > > > > Agora os objetos são atualizados corretamente e eu 
não preciso ficar
                > > > > > trabalhando até mais tarde para resolver o meu 
problema. A minha
                > > > > > esposa ficou bastante feliz com isso".
                >
                > > > > > O "editorDataField" age diretamente no problema 
porque ele permite
                > > > > > informar qual propriedade do "itemRenderer/editor" 
será usada para
                > > > > > atualizar o item (linha do DataGrid). Sem isso, a 
propriedade default
                > > > > > será usada e uma vez que a propriedade default é 
"text", se você
                > > > > > estiver usando um ComboBox, RadioButton ou CheckBox 
isso não vai
                > > > > > funcionar. Por isso, quando você usa um CheckBox, por 
exemplo, e diz
                > > > > > que o "editorDataField" é "selectedItem" o DataGrid 
pegará o valor
                > > > > > desta propriedade para atualizar a propriedade 
descrita pelo
                > > > > > "dataField" do seu DataGridColumn.
                >
                > > > > > MAS NÃO É SÓ ISSO. Para usar o "editorDataField" com 
um "itemRenderer"
                > > > > > você deve usar também a propriedade 
"rendererIsEditor" do seu
                > > > > > "DataGridColumn".
                >
                > > > > > MAS NÃO É SÓ ISSO. Para usar o "editorDataField" você 
precisa usar
                > > > > > também a propriedade "editable" do seu DataGrid.
                >
                > > > > > MAS NÃO É SÓ ISSO. Uma vez que você provavelmente não 
vai querer que
                > > > > > todas as colunas sejam editáveis você deve usar 
também a propriedade
                > > > > > "editable" de cada DataGridColumn.
                >
                > > > > > "editorDataField". Ligue para 011 1406 e peça já o 
seu!
                >
                > > > > > ATENÇÃO: Consulte também o manual do fabricante:
                >
                > > > > 
>http://livedocs.adobe.com/labs/flex3/html/help.html?content=cellrende...
                >
                > > > > > P.S.: Pessoal, desculpem a brincadeira, mas essa foi 
uma maneira que
                > > > > > eu encontrei (adicionando um toque de humor) de 
deixar isto na
                > > > > > "memória" das pessoas uma vez que este é um dos 
problemas mais
                > > > > > recorrentes do Flex que eu já vi até hoje.
                >
                > > > > > On Feb 22, 4:40 pm, HideLine <[EMAIL PROTECTED]> 
wrote:
                > > > > > > Olá,
                >
                > > > > > > Sempre que uso ItemRender em uma DataGrid com 
componentes de ação,
                > > > > > > tenho problemas em manter o estado, deste 
componente dentro da
                > > > > > > DataGrid.
                >
                > > > > > > Ex:
                >
                > > > > > 
>http://forum.flexbrasil.com.br/viewtopic.php?f=3&t=187
                >
                > > > > > > Se alguém já achou uma solução, por favor post aki 
e lá para o
                > > > > > > rdaraujo!
                >
                > > > > > > Obrigado.
                >
                > > > > > --
                > > > > > Marcelo Curi Savioli
                > > > > > D-Click Web & Mobile Solutions
                > > > > > [EMAIL PROTECTED]
                > > > > >www.dclick.com.br/blog
                > > > > >www.dclick.com.br
                >
                > > > --
                > > > Atenciosamente,
                > > > Rafael D. Araujo
                
                



                
        


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