Just off the top of my head, probably have 1 and -1 mixed up :)

function createCompareFunction(fieldName : String) : Function
{
  return function(left : Object, right : Object) : Number
             {
                 if (left[fieldName] < right[fieldName])
                   return -1;
                 if (left[fieldName] > right[fieldName])
                   return 1;
                 return 0;
             }
}

Then you can just call:

createCompareFunction("field1");
createCompareFunction("field2");
createCompareFunction("fieldN");

-Josh

2009/3/15 Dharmendra Chauhan <chauhan_i...@yahoo.com>

>   Hi All,
>        My flex2  *DataGrid*  has got at least *50 columns* of type Date.I
> also have list which opens when use select  a context menu item ,in this
> list user can select  any no of columns on which he wants  multiple sorting
> to be happen.
>
> Lets say user has selected 5 Columns for multi sorting,I create 5 sortField
> with compareFunction in loop as follows
>
>   var sortFieldArray:Array = new Array();
>   for(var *dataField *in *selectedColumnArray*){
>     var field:SortField = new SortField(dataField );
>
>      field.compareFunction = function(itemA:Object,itemB:Object):int{
>                     var dateA:Date =itemA[*dataField *] ;
>                     var dateB:Date =itemB[*dataField *] ;
>
>              .....
>              }
>             sortFieldArray.push(field);
>       }
> Problem which I have been facing is ,local var dataField is always
> referring to the last value of *selectedColumnArray *hence sorting is
> happening based on last column only.
>
> I dont want to create separate compareFunction for each column , simply
> because at compilation time I dont know about the no of column which user
> can choose to participate in multipleSorting.And I dont want to create 50
> compareFunction with *hardcoded dataField* name
>
>
> Is it possible to create *GENERIC compareFucntion *which can take
> dataField without hard coding ?
>
> Please throw some light on this it?
>
>
> Regards,
> Dharmendra chauhan
>
>
>
>
>
>
>
>
>
>
>  
>



-- 
"Therefore, send not to know For whom the bell tolls. It tolls for thee."

Josh 'G-Funk' McDonald
  -  j...@joshmcdonald.info
  -  http://twitter.com/sophistifunk
  -  http://flex.joshmcdonald.info/

Reply via email to