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

Reply via email to