שמירה על סדר מיון בFLEX DataGrid

בעייה מעצבנת שקוראת בDataGrid של פלקס. כאשר ממיינים לפי עמודה ולאחר מכן מחליפים את הDataProvider, הסדר לא נשמר. כלומר המיון מתבצע רק בלחיצה על הכותרת אבל לא מתבצע שוב כשהprivder משתנה (מוחלף ליתר דיוק). כדי לעקוף זאת, כתבתי class נחמד שיורש מDataGrid ומטפל בבעייה. להלן הקוד:


package il.co.j2ee.samples {
import mx.controls.DataGrid;
import mx.events.CollectionEvent;
import mx.events.DataGridEvent;
import mx.events.FlexEvent;

public class SortedDataGrid extends DataGrid {
 private var lastSortingEvent:DataGridEvent;

 public function SortedDataGrid() {
 super();
 addEventListener("headerRelease", onHeaderRelease);
 }

 public override function set dataProvider(data:Object):void{
 super.dataProvider = data;
 addEventListener(CollectionEvent.COLLECTION_CHANGE, onDataChange);
 }

 private function onHeaderRelease(event:DataGridEvent):void{
 lastSortingEvent = event;
 }

 private function onDataChange(event:CollectionEvent):void{
 if (lastSortingEvent){
 dispatchEvent(lastSortingEvent);
 }
 }

}
}

כך זה נראה במקור:

וכך לאחר השימוש בSortedDataGrid:

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *