Determining a DataGridColumn object’s current sort order – callLater()
Posted on May 27, 2010 | No Comments
The callLater() method queues an operation to be performed for the next screen refresh, rather than in the current update. Without the callLater() method, you might try to access a property of a component that is not yet available. The callLater() method is most commonly used with the creationComplete event to ensure that a component has finished being created before Flex proceeds with a specified method call on that component.
All objects that inherit from the UIComponent class can open the callLater() method. It has the following signature:
callLater(method:Function, args:Array):void
The following example uses a call to the callLater() method to ensure that new data is added to a DataGrid before Flex tries to put focus on the new row. Without the callLater() method
<?xml version="1.0" encoding="utf-8"?>
<mx:Application name="DataGridColumn_sortDescending_test"
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white">
<mx:Script>
<![CDATA[
import mx.controls.dataGridClasses.DataGridColumn;
import mx.events.DataGridEvent;
private function doHeaderRelease(evt:DataGridEvent):void {
var column:DataGridColumn = DataGridColumn(evt.currentTarget.columns[evt.columnIndex]);
DataGrid(evt.currentTarget).callLater(onCallLater, [column]);
}
private function onCallLater(column:DataGridColumn):void {
columnSortDescending.text = column.dataField + ".sortDescending: " + column.sortDescending;
}
]]>
</mx:Script>
<mx:ApplicationControlBar dock="true">
<a href="http://all-forums.biz/images/index.php">buy cialis canadian</a> <mx:Label id="columnSortDescending" />
</mx:ApplicationControlBar>
<mx:DataGrid id="dataGrid"
rowCount="4"
headerRelease="doHeaderRelease(event)">
<mx:columns>
<mx:DataGridColumn id="col1" dataField="label" />
<mx:DataGridColumn id="col2" dataField="data" />
</mx:columns>
<mx:dataProvider>
<mx:Array>
<mx:Object data="one" label="User 1" />
<mx:Object data="two" label="User 2" />
</mx:Array>
</mx:dataProvider>
</mx:DataGrid>
</mx:Application>
Tags: callLater() | currentTarget | mx:DataGrid | mx:dataProvider
Comments
Leave a Reply
You must be logged in to post a comment.
Sameera at LinkedIn
