当数据发生变化时,如何在DataGrid中维护选择?

Rol*_*ien 3 apache-flex datagrid

我有一个DataGrid,我将DataProvider设置为我的数据.当我的数据更改时,DataGrid会丢失所选行,并且滚动条会跳回到顶部.如何保持选择和滚动位置?

inv*_*ear 8

如果你只想保持位置:

在任何正在改变数据的功能中,首先捕获所选索引

var myidx:int = new int(myDG.selectedIndex);
Run Code Online (Sandbox Code Playgroud)

和滚动位置

var myVertPos:int = new int(myDG.verticalScrollPosition);
Run Code Online (Sandbox Code Playgroud)

运行更改数据的代码,然后执行上述步骤:

myDG.selectedIndex = myidx;
myDG.verticalScrollPosition = myVertPos;
Run Code Online (Sandbox Code Playgroud)

哦,您可能需要检查以确保所选索引的长度不超过DG中现在的项目长度,如果是,则选择最后一个.根据我的经验,设置垂直滚动位置大于最大值只会导致滚动到最大值.