[英]Flex: question about the sortCompareFunction of the DataGridColumn
無論如何,我可以對多個列使用相同的sortCompareFunction而不是為每個列添加一個函數,因為我有一個包含50列的數據網格,其中40列的dataField不是字符串或數字,它是一個數組,因此默認排序為該列將不起作用。 根據Adobe幫助,sortCompareFunction的兩個參數是整個數據提供程序元素,而不僅僅是項目的數據,因此這意味着我必須為每列定義40個排序函數。 還有其他解決方案嗎?
提前致謝。
您可以像這樣指定排序功能:
<mx:DataGridColumn dataField="someFieldName"
sortCompareFunction="{function(ob1:Object, obj2:Object):int{return mySortFunc(obj1, obj2, 'someFieldName');}}"/>
mySortFunc的實現是這樣的:
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);
}
}
這樣,您可以為所有排序需求提供一個功能:)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.