どのように並べ替えフレックス開発を維持-管理による複数カラム?
-
01-07-2019 - |
質問
私は開発を維持-管理,人口として以下に示します。時にユーザが列ヘッダ、ソートを行用の際の字句順に並び替えの選択カラムを使用し、残りのカラムを使用左から右の順に断定します。たいのですがコードす。
してくれてありがとうございますの答えは、私募以下であることがわかっていても、問題--いると嬉しいただく場合は提供できるよ!)
このレイアウト:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" creationComplete="onCreationComplete()">
<mx:Script source="GridCode.as" />
<mx:DataGrid id="theGrid" x="61" y="55" width="466" height="317">
<mx:columns>
<mx:DataGridColumn dataField="A"/>
<mx:DataGridColumn dataField="B"/>
<mx:DataGridColumn dataField="C"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>
この時点でもバーコード:
import mx.collections.ArrayCollection;
import mx.collections.Sort;
import mx.collections.SortField;
import mx.controls.dataGridClasses.DataGridColumn;
import mx.events.DataGridEvent;
public function onCreationComplete():void
{
var ar:ArrayCollection = new ArrayCollection();
var ob:Object;
for( var i:int=0; i<20; i++ )
{
ob = new Object();
ob["A"] = i;
ob["B"] = i%3;
ob["C"] = i%5;
ar.addItem(ob);
}
this.theGrid.dataProvider = ar;
}
解決
最良の答えがその場で発音を確認することがで使用することで、市場のheaderReleaseイベントは、ユーザがクリック:
<mx:DataGrid id="theGrid" x="61" y="55" width="466" height="317"
headerRelease="onHeaderRelease(event)">
イベントハンドラがそのようにするためのデータ
private var lastIndex:int = -1;
private var desc:Boolean = false;
public function onHeaderRelease(evt:DataGridEvent):void
{
evt.preventDefault();
var srt:Sort = new Sort();
var fields:Array = new Array();
if( evt.columnIndex == lastIndex )
{
desc = !desc;
}
else
{
desc = false;
lastIndex = evt.columnIndex;
}
fields.push( new SortField( evt.dataField, false, desc ) );
if( evt.dataField != "A" )
fields.push( new SortField("A", false, desc) );
if( evt.dataField != "B" )
fields.push( new SortField("B", false, desc) );
if( evt.dataField != "C" )
fields.push( new SortField("C", false, desc) );
srt.fields = fields;
var ar:ArrayCollection = this.theGrid.dataProvider as ArrayCollection;
ar.sort = srt;
ar.refresh();
}
しかしこのアプローチは、よく知られる問題であるが、列ヘッダのない表示に少し矢印のソート方向です。これはドの呼び出し evt.preventDefault() しかし必要がありますが電話または他のカスタム並べ替えなさい。
所属していません StackOverflow