繁体   English   中英

Flex:以编程方式选择某行 - selectedItem为null

[英]Flex:programmatically selecting some row - selectedItem is null

在我的应用程序中,我有一个绑定到RemoteObject的数据网格。 datagrid具有包含详细信息的相应表单。 当用户单击datagrid中的行时,表单将填充DataGrid的selectedItem中的值。

我想在应用程序加载时以编程方式在我的DataGrid中选择一些行。

为了做到这一点,我必须调用validateNow()和scrollToIndex()

例如。

dg.selectedIndex = i; dg.validateNow();
dg.scrollToIndex(ⅰ);

我将此代码放在Applications creationComplete处理程序中。

这一切都很有效 - 所需的行突出显示并选中,selectedIndex为i。 问题是我无法访问数据以填充详细信息表单。 当我尝试检索dg.SelectedItem属性时 - 它为null。

如何在加载时以编程方式选择网格中的某些行并访问行数据?

谢谢

采用

dg.invalidateList();
dg.callLater(setRows, [1]);

function selRows(indices:Array):void {
  dg.selectedIndices = indices;
  dg.validateNow();
  dg.scrollToRow(indices[0]);
}

基本上,如果您要更改DG数据并在同一流程中选择项目,您的选择将被ListBase方法覆盖,您必须在当前GUI更新后设置您需要使用callLater方法的选择。

datagrid的选定项目只是指向dataProvider中的项目。 如果您知道要在数据网格中选择哪个项目,只需在源数据中使用该项目来完成表单的初始填充。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM