Fabio Goll,

Por incrível que parece, funciona sim. Eu uso outro intemRenderer
idêntico, para fazer funções como excluir vários ítens do dataGrid que
o usuário marcar.

Me predoe a ignorância, mas como se faz esse "for nos itens da coleção
e pegar os que estão com
baixar == true"? Me parece mais prático.

Obrigado

On 30 set, 14:05, Fábio Goll <[email protected]> wrote:
> Isso aqui não vai funcionar:
>
> /* Quando vc manipula a propriedade data, que contém o registro do
> dataGrid,             vc está manipulando diretamente o dataProvider. Assim,
> na hora de
> salvar no banco,                         basta enviar o objeto de volta, com
> os valores atualizados*/
>
> data.baixar = chkbaixa.selected;
>
> Vc teria que usar assim pra gravar no dataprovider:
>
> *super.*data.baixar = chkbaixa.selected;
>
> Pesquise sobre "itemRenderer as itemEditor", vc não precisa ficar
> controlando na mão isso.
>
> Depois é só fazer um for nos itens da coleção e pegar os que estão com
> baixar == true, simples assim.
>
> 2010/9/30 Ednei <[email protected]>
>
> > Luiz Nogueira,
>
> > Acho que entendi como entendi como funciona a sua função, mas estou
> > tendo dificuldade em adaptá-la ao que eu tenho.
>
> > A dúvida me surgiu em como eu chamarei a função MarcaDesmarcaCHK sendo
> > o meu ItemRendere um componente esterno.
>
> > Veja:
>
> > Meu itemRenderer é o arquivo ItemRendererChkBaixar.mxml:
> > ----
>
> > <?xml version="1.0" encoding="utf-8"?>
> > <mx:Box xmlns:mx="http://www.adobe.com/2006/mxml"; paddingLeft="15">
>
> >        <mx:Script>
> >                <![CDATA[
> >                        import mx.binding.utils.BindingUtils;
>
> >                        /*Para entender a necessidade deste método, veja:
> >                        http://www.vedovelli.com.br/?p=835*/
> >                         override public function set
> > data(value:Object):void
> >                        {
> >                                super.data = value;
>
> >                                 if(value.baixar == true)
> >                                {
> >                                        chkbaixa.selected = true;
> >                                } else {
> >                                        chkbaixa.selected = false;
> >                                }
>
> >                                if ( value.Situacao == 'C' )
> >                                {
> >                                        chkbaixa.enabled = false;
> >                                }
> >                                else
> >                                {
> >                                        chkbaixa.enabled =  true;
> >                                }
> >                        }
>
> >                        private function alterar():void
> >                        {
> >                                /* Quando vc manipula a propriedade data,
> > que contém o registro do
> > dataGrid,
> >                                vc está manipulando diretamente o
> > dataProvider. Assim, na hora de
> > salvar no banco,
> >                                basta enviar o objeto de volta, com os
> > valores atualizados*/
> >                                data.baixar = chkbaixa.selected;
> >                        }
>
> >                ]]>
> >        </mx:Script>
> >        <mx:Binding destination="chkbaixa.selected" source="data.baixar"/>
> >        <mx:CheckBox id="chkbaixa" change="alterar()" />
>
> > </mx:Box>
>
> > -------------------
>
> > e no meu DataGrid eu tenho:
>
> > ----------
>
> > <mx:DataGrid x="10" y="28" width="939" height="413"
> >        dataProvider="{lista_financeiro}"
> >        doubleClickEnabled="true" itemDoubleClick="{preenche_form();}"
> >        id="dg_financeiro" creationComplete="{chama_lista_financeiro()};"
> > headerHeight="22">
>
> >        <mx:columns>
> >            <mx:DataGridColumn headerText="B" textAlign="center"
> > dataField="baixar"
> >                itemRenderer="br.com.app.component.ItemRendererChkBaixar"
> > width="40"/
>
> >        (...)
>
> > ----------
>
> > On 30 set, 12:08, Luiz Nogueira <[email protected]> wrote:
> > > Eita que itemrenderer da trabalho mas vou tentar te dar uma força.
>
> > > Cara parece complexo demais, mas vc tem que verificar o evento q o
> > > cara ta fazendo
>
> > > vc cria tipo um arrayTemporario do tipo arraycollection
>
> > > olha uma funcao que usei uma vez
>
> > > to te passando a funcao completa aqui e acho q vc vai entender...
>
> > > public function MarcaDesmarcaCHK(e:Event):void{
> > >         var obj:Object;
> > >         var valorTotal:Number;
> > >         var nValor:String;
> > >         var nValorTemp:String;
> > >         var meusDados:SisaBrVo = new SisaBrVo;
> > >         var index:int;
> > >         if(Application.application.bBRCHKSelected == true &&
> > > Application.application.bClicouCheck == false){
> > >                 EmprestimoSelecionado =
> > SisaBrVo(e.currentTarget.selectedItem);
> > >                 meusDados.sql_rowid = EmprestimoSelecionado.sql_rowid;
> > >                 meusDados.cConta = EmprestimoSelecionado.cConta;
> > >                 meusDados.cNome = EmprestimoSelecionado.cNome;
> > >                 meusDados.nCpfCgc = EmprestimoSelecionado.nCpfCgc;
> > >                 meusDados.nMatEmp = EmprestimoSelecionado.nMatEmp;
> > >                 meusDados.nTParc = EmprestimoSelecionado.nTParc;
> > >                 meusDados.nValor = EmprestimoSelecionado.nValor;
> > >                 meusDados.cTipo = EmprestimoSelecionado.cTipo;
> > >                 meusDados.bSelect = true;
> > >                 Application.application.nQtdEmpSelecionados++;
> > >                 nValor =
> > > formatarAmericano.format(EmprestimoSelecionado.nValor.toString());
> > >                 nValorTemp =
> > > formatarAmericano.format(nSomaVlrEmpSelecionados.text.toString());
> > >                 valorTotal = parseFloat(nValorTemp.toString()) +
> > > parseFloat(nValor.toString());
> > >                 nSomaVlrEmpSelecionados.text =
> > > formatarReal.format(valorTotal.valueOf().toString());
> > >                 arrayTempDadosSelecionados.addItem(meusDados);
> > >                 nQtdEmpSelecionados.text =
> > > Application.application.nQtdEmpSelecionados;
> > >                 Application.application.bClicouCheck = true;
> > >         }
> > >         if(Application.application.bBRCHKSelected == false &&
> > > Application.application.bClicouCheck == true){
> > >                 EmprestimoSelecionado =
> > SisaBrVo(e.currentTarget.selectedItem);
> > >                 Application.application.nQtdEmpSelecionados--;
> > >                 nValor =
> > > formatarAmericano.format(EmprestimoSelecionado.nValor.toString());
> > >                 nValorTemp =
> > > formatarAmericano.format(nSomaVlrEmpSelecionados.text.toString());
> > >                 valorTotal = parseFloat(nValorTemp.toString()) -
> > > parseFloat(nValor.toString());
> > >                 nSomaVlrEmpSelecionados.text =
> > > formatarReal.format(valorTotal.valueOf().toString());
> > >                 procura_index(EmprestimoSelecionado.sql_rowid,
> > > arrayTempDadosSelecionados);
> > >                 nQtdEmpSelecionados.text =
> > > Application.application.nQtdEmpSelecionados;
> > >                 Application.application.bClicouCheck = false;
> > >         }
>
> > > }
>
> > > no seu gid vc colocar assim
>
> > > click="MarcaDesmarcaCHK(event)"
>
> > > Se nao entender tento te explicar melhor blz?
>
> > > tem outra funcao que uso dentro do meu itemrenderer
>
> > > public function passaValores(e:Event):void{
> > >         if(e.target.selected == true){
> > >                 //Alert.show('Marcou');
> > >                 Application.application.bBRMarcado = true;
> > >                 Application.application.bBRCHKSelected = true;
> > >                 Application.application.bClicouCheck = false;
> > >         } else{
> > >                 //Alert.show('Desmarcou');
> > >                 Application.application.bBRMarcado = false;
> > >                 Application.application.bBRCHKSelected = false;
> > >                 Application.application.bClicouCheck = true;
> > >         }
>
> > > }
>
> > > meu itemredere ficou assim:
>
> > >                                                 <mx:DataGridColumn
> > headerText=" " textAlign="center"
> > > dataField="bSelect" width="20" editable="true" rendererIsEditor="true"
> > > editorDataField="selected">
> > >                                                         <mx:itemRenderer>
>
> > <mx:Component>
>
> > <mx:CheckBox click="outerDocument.passaValores(event)"
> > > selected="{data.bSelect}"/>
>
> > </mx:Component>
>
> > </mx:itemRenderer>
> > >                                                 </mx:DataGridColumn>
>
> > > no codigo mxml reescrevi a funcao set data ficou assim:
>
> > >         <mx:Script>
> > >                 <![CDATA[
> > >                         [Bindable] private var _selected:Boolean
>
> > >                         override public function set
> > data(value:Object):void{
> > >                                 super.data = value;
> > >                                 if(data.bSelect == true){
> > >                                         _selected = true;
> > >                                 }else{
> > >                                         _selected = false;
> > >                                 }
> > >                         }
>
> > >                 ]]>
> > >         </mx:Script>
>
> > > qualquer coisa estamos ai...
>
> > > On 30 set, 11:01, Ednei <[email protected]> wrote:
>
> > > > Entendi, a idéia é boa... mas como seria feito? Digo, na prática, como
> > > > seria o código?
>
> > > > On 30 set, 10:48, Kleber Gracia <[email protected]> wrote:
>
> > > > > Jogue para outro arrayCollection os event do clique no grid, ao ir
> > clicando
> > > > > vai adicionando, e ao abrir a telinha passo os dados para outro array
> > > > > [Bindable], espero que dê certo.
>
> > > > > At.
> > > > > Kleber Gracia Soares
> > > > > Equipe Galaxyz trabalhando para 
> > > > > vocêwww.galaxyz.com.br<http://xn--vocwww-kva.galaxyz.com.br>
> > > > > Telefone: |44| 3233-2039
> > > > > Cel.: |44| 9960-0298 - Tim
> > > > > Msn: [email protected]
> > > > > Skype: kleber.gracia
> > > > > Email: [email protected]
> > > > > "Tudo posso naquele que me fortalece!" (Fl 4,13).
>
> > > > > Em 30 de setembro de 2010 10:39, Ednei <[email protected]>
> > escreveu:
>
> > > > > > Olá galera,
>
> > > > > > Eu tenho um DataGrid que neste tem um itemRenderer que é um
> > checkBox,
> > > > > > que setado true ou false pela coluna "baixar".
>
> > > > > > Quando eu marco e desmarco o checkbox, naturalmente, a coluna
> > baixar
>
> ...
>
> mais »

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