在我的应用程序中,我有一个绑定到RemoteObject的数据网格。数据网格有一个对应的表单,其中包含详细信息。当用户单击数据网格中的一行时,表单将填充来自数据网格的selectedItem的值。
我希望在应用程序加载时以编程方式选择DataGrid中的某些行。
为此,我必须调用validateNow()和scrollToIndex()
例如:
dg.selectedIndex = i;dg.validateNow();
dg.scrollToIndex(i);
我将这段代码放在Applications creationComplete处理程序中。
这一切都很好用-所需的行被突出显示并选中,selectedIndex是i。问题是我无法访问数据来填充详细信息表单。当我尝试检索dg.SelectedItem属性时-它是空的。
如何在加载和访问行数据时以编程方式选择网格中的某些行?
谢谢
发布于 2010-01-15 09:51:37
使用
dg.invalidateList();
dg.callLater(setRows, [1]);
function selRows(indices:Array):void {
dg.selectedIndices = indices;
dg.validateNow();
dg.scrollToRow(indices[0]);
}
基本上,如果您正在更改DG数据和选择同一流程中的一个项目,您的选择将被ListBase方法覆盖,您必须在当前图形用户界面更新后设置选择,您需要使用callLater方法。
发布于 2009-12-23 16:06:04
数据网格的选定项只是指向dataProvider中的项。如果您知道要在数据网格中选择哪个项目,只需在源数据中使用该项目来完成表单的初始填充。
https://stackoverflow.com/questions/1951555
复制相似问题