http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf66ce9 -7fd6.html
The “headerRelease” event can be cancelled with preventDefault. Also note that the checkbox change is probably a result of mouse events that the DG is using to send the headerRelease event, so another option is to stopImmediatePropagation on mouseEvents, but that might screw up something else. -Alex On 12/10/14, 2:27 AM, "Deepak MS" <[email protected]> wrote: >Here's what I'm trying(sample application): > > ><?xml version="1.0" encoding="utf-8"?> ><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >layout="vertical" >minWidth="955" minHeight="600" > > > <mx:Script> > <![CDATA[ > import mx.utils.ObjectUtil; > public function >sortStringFunction(totalFieldName:String,totalValue:String, >fieldName:String, isNumeric:Boolean = false):Function{ > > return function(obj1:Object, obj2:Object):int > { > if(obj1[totalFieldName] == totalValue){ > > > return 0; > > }else if(obj2[totalFieldName] == totalValue){ > > > return 0; > > }else{ > > if(isNumeric) > { > return >ObjectUtil.numericCompare(obj1[fieldName],obj2[fieldName]); > }else > { > return >ObjectUtil.stringCompare(obj1[fieldName],obj2[fieldName],true); > } > > } > > } > } > ]]> > </mx:Script> > > <mx:ArrayCollection id="ac"> > <mx:Object ischecked="true" color="" name="ABC"/> > <mx:Object ischecked="true" color="" name="KJHD"/> > <mx:Object ischecked="true" color="" name="ADFDGG"/> > <mx:Object ischecked="true" color="" name="SDF"/> > <mx:Object ischecked="true" color="" name="TRF"/> > <mx:Object ischecked="true" color="" name="DF"/> > <mx:Object ischecked="true" color="" name="YTU"/> > <mx:Object ischecked="true" color="" name="Total"/> > </mx:ArrayCollection> > <mx:DataGrid dataProvider="{ac}" width="500" height="500" >sortableColumns="true"> > <mx:columns> > <mx:DataGridColumn sortable="true" >sortCompareFunction="{sortStringFunction('name','Total','name')}"> > <mx:headerRenderer> > <mx:Component> > <mx:VBox paddingLeft="5" verticalAlign="middle" >horizontalAlign="left"> > <mx:Script> > <![CDATA[ > import mx.controls.Alert; > import mx.events.DataGridEvent; > > protected function >checkbox2_changeHandler(event:Event):void > { > > /* event.preventDefault(); > event.stopImmediatePropagation(); >*/ // this doesn't avoid sorting. I want to avoid default sorting here > > for each(var item:Object in >outerDocument.ac) > { > item['ischecked'] = >event.currentTarget.selected; > } > > outerDocument.ac.refresh(); > } > > > ]]> > </mx:Script> > > <mx:HBox> > <mx:Button width="15" height="15"/> > <mx:Label text="ATCs" /> > </mx:HBox> > <mx:CheckBox >change="checkbox2_changeHandler(event)" label="Check All" /> > </mx:VBox> > > </mx:Component> > </mx:headerRenderer> > > <mx:itemRenderer> > <mx:Component> > > <mx:CheckBox selected="{data.ischecked}" label="{ >data.name}"> > > </mx:CheckBox> > > </mx:Component> > </mx:itemRenderer> > </mx:DataGridColumn> > </mx:columns> > </mx:DataGrid> ></mx:Application> > > >On Wed, Dec 10, 2014 at 3:24 PM, Deepak MS <[email protected]> >wrote: > >> Yes, I did. On click of header button, I called those 2 methods but it >> still sorts the column data. >> >> On Wed, Dec 10, 2014 at 3:15 PM, Evyatar Ben Halevi-Arbib < >> [email protected]> wrote: >> >>> Have you tried using the following calls in your renderer's event >>>handler >>> function? >>> event.preventDefault(); >>> event.stopImmediatePropagation() >>> >>> Regards, >>> Evyatar >>> >>> On Wed, Dec 10, 2014 at 11:30 AM, Deepak MS <[email protected]> >>> wrote: >>> >>> > Hey guys, >>> > I have a Datagrid with first column being a custom itemrenderer with >>>a >>> > check box, a box(to display color) and then a label. >>> > >>> > I am using headererRenderer too for that column, but with a check box >>> and a >>> > button. The header's check box is used to check\uncheck all items in >>>the >>> > datagrid. >>> > >>> > When I click on headererenderer's button or checkbox, the data is >>> getting >>> > sorted in the grid. I don't want to do sort when I click on any item >>>in >>> > headerenderer, I want to sort it only when user clicks on header >>>apart >>> from >>> > that button and checkbox. >>> > >>> > I tried to stop event propogation, but always header release event is >>> > triggered first than headerrenderer's button or check box click. So >>>stop >>> > propagation wont work. >>> > >>> > Is there anyway to avoid sorting on click of headerrenderer item? I'm >>> using >>> > Flex 3.6. >>> > >>> > Cheers! >>> > >>> >> >>
