您的位置:首页 > 其它

Flex DataGrid数字排序

2011-03-09 14:43 162 查看
支持把字符类型的数据按数字排列,同时固定住某些特殊行在底端(比如合计行)。

<?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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: