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 > > > 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 > > > > do ArrayCollection é alterarda na llinha correspondente. > > > > > O que eu preciso é o seguinte: Quando o usuário marcar algumas linhas > > > > do DataGrid através do checkBox e clicar no Button "BAIXAR", eu > > > > preciso abrir uma janelinha PopUp que nesta averá um DataGrid populado > > > > com as linhas marcadas do DataGrid anterior. > > > > > Alguém tem uma idéa de como fazer isso? > > > > > ps: Eu uso Flex3 + AMFPHP. > > > > > -- > > > > 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 > > -- 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
