2014-01-19

[Flash] 組件 DataGrid 修改資料後立即更新

 在使用Flash AS3組件DataGrid的時候有個奇怪的問題,就是設成可編輯後,編輯完如果點選DataGrid以外的區域不會立即更新,必須要到點到DataGrid區域才會更新修改的內容。


如果有出現相同的問題可以用以下的方式來解決:

var dataGrid:DataGrid = new DataGrid();
dataGrid.columns = [new DataGridColumn("tag"), new DataGridColumn("value")];
dataGrid.editable = true;
dataGrid.dataProvider = new DataProvider([{tag:"AAA",value:"BBB"}]);
dataGrid.addEventListener(Event.CHANGE, onChangeData);

function onChangeData(e:Event):void
{
if (e.target is DataGridCellEditor)
{
var dataGrid:DataGrid = e.currentTarget as DataGrid;
// 資料立即同步處理 (因為修改過的資料不會立即更新)
var dgce:DataGridCellEditor = e.target as DataGridCellEditor;
var item:DataGridColumn = dataGrid.columns[dgce.listData.column];

var data:Object = dgce.data;
data[item.dataField] = dgce.text;
dgce.data = data;
dataGrid.selectedItem = data;
}
}

沒有留言:

張貼留言