[英]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.