Ednei, que bom que entendeu como é o lance.
Eu saquei como vc ta usando, vc criou um mxml e ta chamando ele.
Tipo eu apanhei demais para descobrir que nao consigo fazer funcionar
do jeito que vc quer usando um mxml externo entao em vez de usar um
extorno eu crio ele assim:
Em vez da minha coluna do datagrid ficar assim como no seu projeto:
<mx:DataGridColumn headerText="B" textAlign="center"
dataField="baixar"
itemRenderer="br.com.app.component.ItemRendererChkBaixar" width="40"/
>
Ela ficaria assim:
<mx:DataGridColumn headerText="B" textAlign="center"
dataField="baixar" editable="true" width="40" rendererIsEditor="true"
editorDataField="selected">
<mx:itemRenderer>
<mx:Component>
<mx:CheckBox click="outerDocument.passaValores(event)"
selected="{data.baixar}"/>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
Deu para entender?
Qualquer coisa é so dar o toque.
Valeu
On 30 set, 13:56, Ednei <[email protected]> wrote:
> 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
>
> ...
>
> 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