Search Flex Components Free

Custom Search

December 20, 2007

Flex Control DataGrid Computed Columns Source Code Sample

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml" backgroundAlpha="0" creationComplete="srv.send()">
<mx:Script> <![CDATA[
import mx.collections.ArrayCollection; import mx.controls.dataGridClasses.DataGridColumn;
[Bindable] public var results:ArrayCollection;
private function getName(item:Object, dc:DataGridColumn):String { if (item!=null) return item.name.last+", "+item.name.first; else return ""; }
private function getTotal(item:Object, dc:DataGridColumn):String { if (item!=null) return (item.q1 + item.q2 + item.q3 + item.q4).toString(); else return ""; }
private function sortTotal(obj1:Object, obj2:Object, fields:Array = null):Number { var total1:Number = obj1.q1 + obj1.q2 + obj1.q3 + obj1.q4; var total2:Number = obj2.q1 + obj2.q2 + obj2.q3 + obj2.q4;
if(total1 < total2) { return -1; } else { return 1; } }
private function sortNames(obj1:Object, obj2:Object, fields:Array = null):Number { if(obj1.name.last < obj2.name.last) { return -1; } else { return 1; } } ]]> </mx:Script>
<mx:HTTPService id="srv" url="../assets/results.xml" useProxy="false" result="results = new ArrayCollection(srv.lastResult.list.salesrep)"/>
<mx:DataGrid width="100%" height="100%" dataProvider="{results}"> <mx:columns> <mx:Array> <mx:DataGridColumn labelFunction="getName" headerText="Sales Rep" sortCompareFunction="sortNames" /> <mx:DataGridColumn dataField="q1" headerText="Q1" textAlign="right"/> <mx:DataGridColumn dataField="q2" headerText="Q2" textAlign="right"/> <mx:DataGridColumn dataField="q3" headerText="Q3" textAlign="right"/> <mx:DataGridColumn dataField="q4" headerText="Q4" textAlign="right"/> <mx:DataGridColumn labelFunction="getTotal" headerText="Total" textAlign="right" sortCompareFunction="sortTotal" /> </mx:Array> </mx:columns> </mx:DataGrid>
</mx:Application>

Related Flex Tutorials