vc já tentou setar o selectedIndex=-1, do datagrid quando o checkbox é
clicado? ou o selectedItem=null?

qualquer um dos dois deve de-selecionar a linha.

julio

On 27 jan, 14:36, Andre Coelho <[email protected]> wrote:
> É, vc não entendeu o meu problema... =P
>
> Meu problema não é no header, o meu funciona perfeitamente.
> Meu problema é que eu tenho uma checkBox em cada linha do dataGrid. Só que,
> quando eu clico no checkbox, ele acaba selecionando a linha referente a ele
> no dataGrid também.
> O comportamento que eu quero é o seguinte: clicou na checkBox, marca só a
> checkBox. Clicou em qualquer outra parte daquela linha do dataGrid, marca a
> linha toda.
>
> André Coelho Brait da Silva
> TeCGraf
>
> Tel: (21) 3527-2502
> Cel: (21) 8836-7622
>
> 2009/1/27 Andre Coelho <[email protected]>
>
> > Obrigado pela resposta Luis. Eu aidna nao testei a solução, mas só pra
> > tirar uma dúvida q jah pintou, pq existe a necessidade de se ter um header
> > renderer? Eu já tenho um headerRenderer de checkbox, não sei se tá parecido,
> > aidna vou verificar.
> > Só gostaria de saber se você colou ele aí por alguma necessidade específica
>
> > André Coelho Brait da Silva
> > TeCGraf
>
> > Tel: (21) 3527-2502
> > Cel: (21) 8836-7622
>
> > 2009/1/27 Luiz Nogueira <[email protected]>
>
> >> André bom dia,
>
> >> Cara não sei se entendi muito bem o que vc quer.
> >> Mas tipo assim vou colocar um código aqui que talvez te ajude em algo.
> >> Qualquer coisa estamos ai...
>
> >> Vamos criar um class CheckBoxHeaderRenderer
> >> o cdigo que ele vai ter é o seguinte:
>
> >> package
> >> {
> >> import flash.events.MouseEvent;
> >> import mx.controls.CheckBox;
> >> import mx.controls.DataGrid;
> >> import mx.controls.dataGridClasses.DataGridColumn;
> >> import mx.controls.dataGridClasses.DataGridListData;
> >> import mx.events.DataGridEvent;
>
> >> public class CheckBoxHeaderRenderer extends CheckBox
> >> {
>
> >>        public function CheckBoxHeaderRenderer()
> >>        {
> >>                super();
> >>        }
>
> >>        private var _data:DataGridColumn;
>
> >>        override public function get data():Object
> >>        {
> >>                return _data;
> >>        }
>
> >>        override public function set data(value:Object):void
> >>        {
> >>                _data = value as DataGridColumn;
> >>                label = DataGridListData(listData).label + " as plain
> >> text";
> >>                DataGrid(listData.owner).addEventListener
> >> (DataGridEvent.HEADER_RELEASE, sortEventHandler);
> >>                selected = (data.getStyle("plainText") == true);
>
> >>        }
>
> >>        private function sortEventHandler(event:DataGridEvent):void
> >>        {
> >>                if (event.itemRenderer == this)
> >>                        event.preventDefault();
> >>        }
>
> >>        override protected function clickHandler(event:MouseEvent):void
> >>        {
> >>                super.clickHandler(event);
> >>                if (selected)
> >>                        data.setStyle("plainText", true);
> >>                else
> >>                        data.setStyle("plainText", false);
>
> >>                DataGrid(listData.owner).invalidateList();
> >>        }
>
> >> }
>
> >> }
>
> >> //fim do class
>
> >> no caso aqui vou usar um HTML para o checkbox manipular blz?
>
> >> vamos criar um outro class TextOrHTMLRenderer
>
> >> package
> >> {
> >> import mx.controls.DataGrid;
> >> import mx.controls.dataGridClasses.DataGridItemRenderer;
> >> import mx.controls.dataGridClasses.DataGridColumn;
>
> >> public class TextOrHTMLRenderer extends DataGridItemRenderer
> >> {
>
> >>        public function TextOrHTMLRenderer()
> >>        {
> >>                super();
> >>        }
>
> >>        override public function validateProperties():void
> >>        {
> >>                super.validateProperties();
> >>                if (listData)
> >>                {
> >>                        var dg:DataGrid = DataGrid(listData.owner);
>
> >>                        var column:DataGridColumn =
> >> dg.columns[listData.columnIndex];
> >>                        htmlText = data[column.dataField];
>
> >>                        if (getStyle("plainText"))
> >>                        {
> >>                                text = text;
> >>                        }
> >>                }
> >>        }
>
> >> }
>
> >> }
>
> >> //fim do class
>
> >> agora nosso aplicativo dg.mxml
>
> >> <?xml version="1.0" encoding="utf-8"?>
> >> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
> >> xmlns:local="*" >
>
> >> <mx:Script>
> >> <![CDATA[
>
> >> private var dp:Array = [
> >>        { symbol: "ADBE", name: "Adobe Systems Inc.",
> >>                news: "Adobe Flex is <b>great</b>! according to
> >> <i>FlexCoders</
> >> i>" },
> >>        { symbol: "MACR", name: "Macromedia Inc.",
> >>                news: "<FONT color='#FF0000'>Macromedia</FONT> is absorbed
> >> into
> >> Adobe" },
> >>        { symbol: "MSFT", name: "Microsoft Corp.",
> >>                news: "Microsoft sees <FONT size='20'>Flex</FONT> for the
> >> first
> >> time" },
> >>        { symbol: "IBM", name: "IBM Corp.",
> >>                news: "IBM was once the top <b><i>dog</i></b> but no more"
> >> }
> >>        ];
>
> >> ]]>
> >> </mx:Script>
>
> >> <mx:DataGrid id="dg1" initialize="dg1.dataProvider = dp"
> >> paddingTop="0" paddingBottom="0" verticalAlign="middle"
> >>        variableRowHeight="true" >
> >> <mx:columns>
> >> <mx:DataGridColumn headerText="Name" dataField="name" width="140"/>
> >> <mx:DataGridColumn headerText="Symbol" dataField="symbol" width="60" /
>
> >> <mx:DataGridColumn headerText="News" dataField="news" wordWrap="true"
> >> width="200"
> >>                        headerRenderer="CheckBoxHeaderRenderer"
> >>                        itemRenderer="TextOrHTMLRenderer" />
> >> </mx:columns>
> >> </mx:DataGrid>
>
> >> </mx:Application>
>
> >> //fim do aplicativo
>
> >> Bem espero ter te ajudado...
>
> >> Abraço,
>
> >> Luiz Nogueira
>
> >> On 26 jan, 14:20, Andre Coelho <[email protected]> wrote:
> >> > Eu sei que o assunto do checkbox no datagrid já foi bastante discutido
> >> aqui
> >> > na lista, ams eu não consegui achar ninguém com um problema igual ao
> >> meu.
>
> >> > Eu já consigo colcoar o checkbox no datagrid e td mais. Tb consigo
> >> editar a
> >> > minha propiedade no objeto referenciado.
>
> >> > O meu problema é que eu quero que, ao clicar na checkbox, a linha em à
> >> qual
> >> > ela pertence não seja selecionada. Mas caso clique em qualquer outra
> >> célula,
> >> > a linha inteira deve ser selecionada.
> >> > O meu comportamento, por enquanto, é "a linha é selecioanda ao clicar no
> >> > checkbox".
>
> >> > Eu cheguei a criar um renderer para poder capturar o evento do
> >> mouseClick e
> >> > dar um event.stopImmediatePropagation(), mas não deu certo. Acho que a
> >> > seleção na tabela está capturando o evento antes de chegar no
> >> clickHandler
> >> > do checkBox.
>
> >> > Por enquanto, meu renderer está vazio.
> >> > O código da coluna está assim:
>
> >> > <Control:CheckBoxHeaderColumn headerWordWrap="true" textAlign="center"
> >> > headerText=" "
> >> >                     width="25" sortable="false" dataField="selected"
> >> > rendererIsEditor="true"
>
> >> > headerRenderer="View.lqgRenderers.CheckBoxHeaderRenderer">
> >> >                     <Control:itemRenderer>
> >> >                          <mx:Component>
> >> >                              <lqgRenderers:CheckBoxRenderer
> >> > selectedField="selected" change="data.selected = selected" />
> >> >                          </mx:Component>
> >> >                     </Control:itemRenderer>
> >> > </Control:CheckBoxHeaderColumn>
>
> >> > O CheckBoxHeaderColumn é um header, que estende  AdvancedDataGridColumn,
> >> com
> >> > um um checkBox que está funcionando numa boa.
> >> > Alguma dica do que eu devo colocar dentro do CheckBoxRenderer?
>
> >> > André Coelho Brait da Silva
> >> > TeCGraf
>
> >> > Tel: (21) 3527-2502
> >> > Cel: (21) 8836-7622
--~--~---------~--~----~------------~-------~--~----~
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