DataGridで表示されているリストの「表示」を更新する方法
DataGridで表示されるリストの内容を更新するにはDataGrid.dataProviderを変更すれば良いが,内容は変わらないが表示だけを更新したい場合はどうするか。
まず考えたのがarrayCollection.refresh()。これはダメ。
次に考えたのはdataProviderを再設定する方法。これもダメ。
さらに考えたのがソートを再設定してリフレッシュ。これもダメ。
最後に考えたのがcolumnsを再設定する方法。これはケーオツ。
なぜだろう?と考えるに,同じソートや同じリストを再設定してもDataGridのitemRendererでFlexEvent.DATA_CHANGEイベントが発行されないため表示が更新されないのだろう,と考えられる。
まず考えたのが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イベントが発行されないため表示が更新されないのだろう,と考えられる。
コメント
コメントを投稿