支持把字符类型的数据按数字排列,同时固定住某些特殊行在底端(比如合计行)。 <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"> <mx:Script> <!--[CDATA[ import mx.controls.dataGridClasses.DataGridColumn; import mx.utils.ObjectUtil; private function getSortFun(field:DataGridColumn,keyField:String="@col1",keyValue:String="1"):Function{ return function(o1:Object,o2:Object):int{ if(o1[keyField] == keyValue) { return field.sortDescending ? -1 : 1; } else if(o2[keyField] == keyValue) { return field.sortDescending ? 1 : -1; } return ObjectUtil.numericCompare(new Number(o1[field.dataField]),new Number(o2[field.dataField])); }; } ]]--> </mx:Script> <mx:XMLList xmlns="" id="data"> <node col1="1" col2="1" col3="合计"/> <node col1="11" col2="1" col3="a1"/> <node col1="91" col2="1" col3="a1"/> <node col1="100" col2="1" col3="a1"/> <node col1="1012" col2="1" col3="a1"/> <node col1="12123" col2="1" col3="a1"/> <node col1="91" col2="1" col3="a1"/> <node col1="9" col2="1" col3="a1"/> </mx:XMLList> <mx:DataGrid width="100%" height="100%" dataProvider="{data}"> <mx:columns> <mx:DataGridColumn headerText="Column 3" dataField="@col3"/> <mx:DataGridColumn headerText="Column 1" id="col1" dataField="@col1" sortCompareFunction="getSortFun(col1)"/> <mx:DataGridColumn headerText="Column 2" dataField="@col2"/> </mx:columns> </mx:DataGrid> </mx:Application>