2010-08-10 2 views
2

40 열의 dataField가 아닌 50 개의 열이있는 DataGrid가 있으므로 각 열의 함수를 추가하는 대신 여러 개의 열에 동일한 sortCompareFunction을 사용할 수 있습니까? 문자열 또는 숫자 일 경우 배열의 기본 열 정렬이 작동하지 않습니다. 어도비 도움말에 따르면 sortCompareFunction 의 두 매개 변수는 항목의 데이터가 아니라 전체 데이터 공급자 요소이므로, 각 열에 하나씩 40 개의 정렬 함수를 정의해야합니다. 다른 해결책이 있습니까?Flex : DataGridColumn의 sortCompareFunction에 대한 질문

미리 감사드립니다. 당신은 지정할 수

답변

5

일종의 그런 기능 : mySortFunc가 그런 식으로 구현된다

<mx:DataGridColumn dataField="someFieldName" 
    sortCompareFunction="{function(ob1:Object, obj2:Object):int{return mySortFunc(obj1, obj2, 'someFieldName');}}"/>

가 :

private function mySortFunc(obj1:Object, obj2:Object, fieldName:String):int{ 
    if (obj1.hasOwnProperty(fieldName) && obj2.hasOwnProperty(fieldName)){ 
     //comparison logic ex. 
     return obj1[fieldName]>obj2[fieldName]?1:(obj1[fieldName]<obj2[fieldName]?-1:0); 
    } 
}

이 방법은 모든 정렬을 요구 한 기능을 가질 수 있습니다 :).

+0

고맙습니다. – Yasmine

관련 문제