DataGridで表示されているリストの「表示」を更新する方法

DataGridで表示されるリストの内容を更新するにはDataGrid.dataProviderを変更すれば良いが,内容は変わらないが表示だけを更新したい場合はどうするか。

まず考えたのがarrayCollection.refresh()。これはダメ。

次に考えたのはdataProviderを再設定する方法。これもダメ。
dataGrid.dataProvider = null;
dataGrid.dataProvider = arrayCollection;

さらに考えたのがソートを再設定してリフレッシュ。これもダメ。
var sorter:Sort = arrayCollection.sort;
arrayCollection.sort = null;
arrayCollection.sort = sorter;
arrayCollection.refresh();

最後に考えたのがcolumnsを再設定する方法。これはケーオツ。
var cols:Array = dataGrid.columns;
dataGrid.columns = cols;

なぜだろう?と考えるに,同じソートや同じリストを再設定してもDataGridのitemRendererでFlexEvent.DATA_CHANGEイベントが発行されないため表示が更新されないのだろう,と考えられる。

コメント

このブログの人気の投稿

レオナルド・ダ・ビンチはなぜノートを「鏡文字」で書いたのか?

macでsmb(samba)共有サーバーに別名で接続(別アカウント名で接続)する方法

Google DriveにCURLでアップロードするには?