Eu uso assim:

<s:DataGrid id="gridProdutos" keyUp="validakey(event)" width="100%"
height="100%" requestedRowCount="4">
                <s:columns>
                    <s:ArrayList>
                        <s:GridColumn dataField="idproduto" width="150"
headerText="EAN"></s:GridColumn>
                        <s:GridColumn dataField="descricao"
headerText="Nome"></s:GridColumn>
                        <s:GridColumn dataField="apresentacao"
headerText="Apresentação"></s:GridColumn>
                        <s:GridColumn dataField="principio"
headerText="Principio Ativo"></s:GridColumn>
                        <s:GridColumn dataField="razao_social" width="250"
headerText="Industria"></s:GridColumn>
                        <s:GridColumn dataField="nometipoproduto"
width="150" headerText="Tipo Produto"></s:GridColumn>
                        <s:GridColumn dataField="selecionar"  width="40"
headerText="">
                            <s:itemRenderer>
                                <fx:Component>
                                    <s:GridItemRenderer
clipAndEnableScrolling="true" >
                                        <fx:Script>
                                            <![CDATA[

                                                override public function
set data(value:Object):void {
                                                    super.data = value;
                                                    // Check to see if the
data property is null.
                                                    if (value== null)
                                                        return;
                                                    // If the data property
is not null,
                                                    // set the CheckBox
control appropriately..
                                                    if(value.selecionar ==
true) {

callCheckBox.selected = true;
                                                    }else {

callCheckBox.selected = false;
                                                    }
                                                }

                                                private function
valueChange():void
                                                {
                                                    data.selecionar =
callCheckBox.selected;

outerDocument.todosProdutos.selected = false;
                                                }
                                            ]]>
                                        </fx:Script>
                                        <s:HGroup left="5" top="9"
right="5" verticalAlign="baseline">
                                            <s:CheckBox id="callCheckBox"
click="valueChange()" selected="{data.selecionar}"/>
                                        </s:HGroup>
                                    </s:GridItemRenderer>
                                </fx:Component>
                            </s:itemRenderer>
                        </s:GridColumn>
                    </s:ArrayList>
                </s:columns>
            </s:DataGrid>

Ai se eu quiser que quando selecionar ele faça alguma coisa na tela
principal, ai eu coloco outerDocument.funcao()


2013/5/27 Fredy Gadotti <fredy.gado...@gmail.com>

> Esse problema é porque o DataGrid recicla os itens para melhorar
> performance, se seu dataProvider tem 100 itens e só mostra 10 por vez, ele
> irá criar 10 e reaproveitar os 10 cada vez que der scroll.
>
> Procura por itemRenderer recycleChildren e pela interface IDataRenderer e
> IListaDataRenderer, só dar override em alguns métodos usando a
> implementação básica que provavelmente já estará com seu problema resolvido.
>
> Abraço,
>
> Fredy
>
>
> 2013/5/27 Rafael Bandeira Rodrigues <rafab...@gmail.com>
>
>> isolei o componente como um novo projeto e para minha surpresa o problema
>> acontece quando o grid tem scroll. É algo na renderização... Segue o código
>>
>> <?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" minWidth="955"
>> minHeight="600"
>>    creationComplete="creationCompleteHandler(event)">
>>  <fx:Script>
>> <![CDATA[
>> import mx.collections.ArrayCollection;
>>  import mx.controls.Alert;
>> import mx.events.FlexEvent;
>> import mx.rpc.events.FaultEvent;
>>  import mx.rpc.events.ResultEvent;
>>  import spark.events.GridEvent;
>>  public const END_POINT:String = "http://{server.name
>> }:{server.port}/flex2gateway/";
>>  [Bindable] private var dataResult:ArrayCollection = new
>> ArrayCollection();
>>  [Bindable] private var idManufacturer:uint = 0;
>>  private function getAllResultHandler(event:ResultEvent):void {
>> dataResult = event.result as ArrayCollection;
>>  }
>>  private function faultHandler(event:FaultEvent):void {
>>  Alert.show(event.fault.rootCause.cause.errorMessage.faultString, "PCCel
>> - Erro") ;
>> }
>>  private function creationCompleteHandler(event:FlexEvent):void {
>> ro.getAll();
>>  }
>>  private function actionClickHandler(event:MouseEvent):void {
>>  switch(event.currentTarget.label.toUpperCase()) {
>> case "ADICIONAR" :
>> ro.save(nmManufacturer.text);
>>  break;
>> case "ATUALIZAR" :
>> ro.update(idManufacturer, nmManufacturer.text);
>>  break;
>> }
>> dg.selectedIndex = -1;
>> }
>>  private function saveResultHandler(event:ResultEvent):void {
>> nmManufacturer.text = "";
>>  dataResult.addItem(event.result);
>> dataResult.refresh();
>> dg.ensureCellIsVisible(dataResult.length - 1);
>>  dg.selectedIndex = -1;
>> }
>>  private function filterFirst(item:Object):Boolean {
>>  return item["nome_fabricante"].match(new RegExp(searchField.text, 'i'))
>> }
>>  private function search():void {
>> if(searchField.text != "") filter();
>> else filterReset();
>>  }
>>  private function filter():void {
>> dataResult.filterFunction = filterFirst;
>>  dataResult.refresh();
>> }
>>  private function filterReset():void {
>>  dataResult.filterFunction = null;
>> dataResult.refresh();
>> }
>>  private function editClickHandler(event:GridEvent):void {
>> nmManufacturer.text = dg.selectedItem.nome_fabricante;
>>  idManufacturer = dg.selectedItem.codigo;
>> nmManufacturer.setFocus();
>> btnCancelAction.visible = true;
>>  btnAction.label = "Atualizar";
>>  }
>>  private function cancelActionClickHandler(event:MouseEvent):void {
>> nmManufacturer.text = "";
>>  nmManufacturer.errorString = "";
>> btnCancelAction.visible = false;
>> btnAction.label = "Adicionar";
>>  }
>>  private function updateResultHandler(event:ResultEvent):void {
>>  // TODO Auto-generated method stub
>>  }
>>
>> ]]>
>> </fx:Script>
>> <fx:Declarations>
>>  <s:RemoteObject id="ro" showBusyCursor="true" destination="ColdFusion"
>> endpoint="{END_POINT}" fault="faultHandler(event)"
>>  source="components.screens.Manufacturer">
>> <s:method name="getAll" concurrency="multiple"
>> result="getAllResultHandler(event)" />
>>  <s:method name="save" concurrency="multiple"
>> result="saveResultHandler(event)" />
>> <s:method name="update" concurrency="multiple"
>> result="updateResultHandler(event)" />
>>  </s:RemoteObject>
>> </fx:Declarations>
>> <s:TitleWindow width="600" height="340">
>>  <s:layout>
>> <s:VerticalLayout/>
>> </s:layout>
>>  <s:controlBarContent>
>> <s:Button id="btnDelete" label="Excluir" enabled="{dg.selectedIndex >
>> -1}"/>
>>  <s:Spacer width="100%" height="10"/>
>> <s:Button label="Ok"/>
>>  <s:Button label="Cancelar" />
>> </s:controlBarContent>
>>  <mx:Form width="100%" defaultButton="{btnAction}">
>> <mx:FormItem label="Nome do Fabricante:" direction="horizontal">
>>  <s:TextInput id="nmManufacturer" width="225"/>
>> <s:Button id="btnAction" label="Adicionar"
>> click="actionClickHandler(event)"/>
>>  <s:Button id="btnCancelAction" label="Cancelar" visible="false"
>> click="cancelActionClickHandler(event)" />
>> </mx:FormItem>
>>  </mx:Form>
>> <s:Group width="100%" height="100%">
>> <s:Panel width="100%" height="100%">
>>  <s:TextInput id="searchField" y="-27" right="5" width="210"
>> prompt="Procurar..." change="search()"/>
>>  <s:DataGrid id="dg" width="100%" height="100%"
>> dataProvider="{dataResult}" doubleClickEnabled="true"
>> gridDoubleClick="editClickHandler(event)">
>>  <s:columns>
>> <s:ArrayList>
>> <s:GridColumn dataField="nome_fabricante" headerText="Fabricante"  />
>>  <s:GridColumn dataField="codigo" visible="false" />
>> <s:GridColumn>
>>  <s:itemRenderer>
>> <fx:Component>
>> <s:GridItemRenderer>
>>  <s:CheckBox id="deleteAction" verticalCenter="0" horizontalCenter="0" />
>> </s:GridItemRenderer>
>>  </fx:Component>
>> </s:itemRenderer>
>> </s:GridColumn>
>>  </s:ArrayList>
>> </s:columns>
>> </s:DataGrid>
>>  </s:Panel>
>> </s:Group>
>>
>> </s:TitleWindow>
>>
>> </s:Application>
>>
>>
>> Obrigado,
>>
>> Rafael Bandeira Rodrigues
>> Chief Executive Officer
>> FlagNet - Soluções em Tecnologia
>> http://www.flagnet.inf.br/
>>
>> Adobe ColdFusion 8 Certified Expert
>> Adobe ColdFusion MX 7 Certified Developer
>> Adobe Certified Professional
>> Adobe Certified Instructor
>> Adobe Certified Expert
>> Fusebox - BRASIL
>> http://www.fusebox.com.br/
>> RafaBand - BlogSpot.com
>> http://rafaband.blogspot.com/
>> FlagNet - Twiter
>> http://twitter.com/flagnet/
>>
>> "Pensar apenas ou desejar somente nunca levou ninguém a lugar nenhum. É
>> necessário também a ação" - William Shakespeare
>>
>>
>> Em 27 de maio de 2013 12:02, Helio Antonio Francisco Silva <
>> helio.afsi...@gmail.com> escreveu:
>>
>> cara posta o codigo ai pra gente ver. pelo que entendi, quando voce clica
>>> ele marca todos os multiplos de 7 e isso ? eu fiz um datagrid ontem que
>>> lista 200 clientes e ele pode selecionar todos ou somente aqueles e ainda
>>> fiz um filtro pro cara procurar  e trazer somente os checkbox que o cara
>>> selecionou.
>>> coloca o codigo ae que eu vou te ajudar a resolver essa bronca.
>>>
>>>
>>> 2013/5/27 Rafael Bandeira Rodrigues <rafab...@gmail.com>
>>>
>>>> Pessoal, estou com um datagrid, onde tenho 3 colunas, uma invisível que
>>>> me trás o id do registrando banco, uma com o registro que é um nome e uma
>>>> terceira que é um checkbox para ser marcado em caso de exclusão de dados.
>>>>
>>>> Ao clicar no checkbox 1 ele esta marcando os múltiplos de 7, marcando o
>>>> 7, 14, 21, etc. O campo não tem nada nem dataField, não estou achando o
>>>> problema, alguma dica?!
>>>>
>>>>
>>>> --
>>>> Obrigado,
>>>>
>>>> Rafael Bandeira Rodrigues
>>>> Chief Executive Officer
>>>> FlagNet - Soluções em Tecnologia
>>>> http://www.flagnet.inf.br/
>>>>
>>>> Adobe ColdFusion 8 Certified Expert
>>>> Adobe ColdFusion MX 7 Certified Developer
>>>> Adobe Certified Professional
>>>> Adobe Certified Instructor
>>>> Adobe Certified Expert
>>>> Fusebox - BRASIL
>>>> http://www.fusebox.com.br/
>>>> RafaBand - BlogSpot.com
>>>> http://rafaband.blogspot.com/
>>>> FlagNet - Twiter
>>>> http://twitter.com/flagnet/
>>>>
>>>> "Pensar apenas ou desejar somente nunca levou ninguém a lugar nenhum. É
>>>> necessário também a ação" - William Shakespeare
>>>>
>>>>
>>>>  --
>>>> --
>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
>>>> Para sair da lista, envie um email em branco para
>>>> flexdev-unsubscr...@googlegroups.com
>>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>> ---
>>>> Você está recebendo esta mensagem porque se inscreveu no grupo
>>>> "flexdev" dos Grupos do Google.
>>>> Para cancelar a inscrição neste grupo e parar de receber seus e-mails,
>>>> envie um e-mail para flexdev+unsubscr...@googlegroups.com.
>>>> Para obter mais opções, acesse https://groups.google.com/groups/opt_out
>>>> .
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> *Hélio Antonio Francisco 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.
>>>
>>> --
>>> --
>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
>>> Para sair da lista, envie um email em branco para
>>> flexdev-unsubscr...@googlegroups.com
>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>> ---
>>> Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev"
>>> dos Grupos do Google.
>>> Para cancelar a inscrição neste grupo e parar de receber seus e-mails,
>>> envie um e-mail para flexdev+unsubscr...@googlegroups.com.
>>> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
>>>
>>>
>>>
>>
>>  --
>> --
>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
>> Para sair da lista, envie um email em branco para
>> flexdev-unsubscr...@googlegroups.com
>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>> ---
>> Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev"
>> dos Grupos do Google.
>> Para cancelar a inscrição neste grupo e parar de receber seus e-mails,
>> envie um e-mail para flexdev+unsubscr...@googlegroups.com.
>> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
>>
>>
>>
>
>  --
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
> Para sair da lista, envie um email em branco para
> flexdev-unsubscr...@googlegroups.com
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
> ---
> Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev"
> dos Grupos do Google.
> Para cancelar a inscrição neste grupo e parar de receber seus e-mails,
> envie um e-mail para flexdev+unsubscr...@googlegroups.com.
> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
>
>
>



-- 
*Hélio Antonio Francisco 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.

-- 
-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
--- 
Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev" dos 
Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um 
e-mail para flexdev+unsubscr...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.


Responder a