Flex表格数据重新加载,仍然保留原来的列头排序
作者:hangge | 2014-10-29 11:04
Flex的表格DataGrid具有排序功能,只要点击表头就可以进行排序。但有时我们重新加载表格的数据的时候(比如表格需要定时刷新),会发现原来选择的排序消失,而是数据原始的顺序。
要保持数据加载后仍保持原来的排序,可参考如下代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.collections.ICollectionView;
import mx.collections.Sort;
private var d:XML = <data>
<item value1="1" value2="a"/>
<item value1="2" value2="b"/>
<item value1="3" value2="c"/>
<item value1="4" value2="d"/>
<item value1="5" value2="e"/>
</data>
protected function button1_clickHandler(event:MouseEvent):void
{
//var s:Sort = dg.dataProvider.sort;
var view:ICollectionView = ICollectionView(dg.dataProvider);
var s:Sort;
if(view != null){
s = view.sort;
}
dg.dataProvider = d.children();
if(view != null){
view = ICollectionView(dg.dataProvider);
view.sort = s;
view.refresh();
}
}
]]>
</mx:Script>
<mx:DataGrid x="38" y="22" id="dg">
<mx:columns>
<mx:DataGridColumn dataField="@value1" headerText="列 1"/>
<mx:DataGridColumn dataField="@value2" headerText="列 2"/>
<mx:DataGridColumn dataField="col3" headerText="列 3"/>
</mx:columns>
</mx:DataGrid>
<mx:Button x="38" y="195" label="按钮" click="button1_clickHandler(event)"/>
</mx:Application>
全部评论(0)