<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white" viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
import mx.utils.ObjectUtil;
private function index_sortCompareFunc(itemA:Object, itemB:Object):int {
if (!itemA.hasOwnProperty("index")) {
itemA.index = null;
}
if (!itemB.hasOwnProperty("index")) {
itemB.index = null;
}
return ObjectUtil.numericCompare(itemA.index, itemB.index);
}
private function value_sortCompareFunc(itemA:Object, itemB:Object):int {
if (!itemA.hasOwnProperty("value")) {
itemA.value = null;
}
if (!itemB.hasOwnProperty("value")) {
itemB.value = null;
}
/**
* Perform a string sort. If the checkbox is selected
* do a case insensitive sort, otherwise, dont.
*/
return ObjectUtil.stringCompare(itemA.value, itemB.value, checkBox.selected);
}
]]>
</mx:Script>
<mx:ArrayCollection id="arrColl">
<mx:source>
<mx:Array>
<mx:Object index="1" value="apple" />
<mx:Object index="200" value="Bear" />
<mx:Object index="3" value="corn" />
<mx:Object index="40" value="Dragon" />
<mx:Object value="eggplant" />
<mx:Object index="5" />
</mx:Array>
</mx:source>
</mx:ArrayCollection>
<mx:ApplicationControlBar dock="true">
<mx:CheckBox id="checkBox"
label="case insensitive search:"
labelPlacement="left"
selected="true" />
</mx:ApplicationControlBar>
<mx:DataGrid id="dataGrid" dataProvider="{arrColl}">
<mx:columns>
<mx:DataGridColumn dataField="index"
sortCompareFunction="index_sortCompareFunc" />
<mx:DataGridColumn dataField="value"
sortCompareFunction="value_sortCompareFunc" />
</mx:columns>
</mx:DataGrid>
</mx:Application>