Eia o problema, a lina nao pode ser selecionada, pq o select dela faz uma
outra ação. No caso, muda o estado da aplicação

André Coelho Brait da Silva
TeCGraf

Tel: (21) 3527-2502
Cel: (21) 8836-7622


On Tue, Jan 27, 2009 at 4:25 PM, Julio carneiro <[email protected]>wrote:

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