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