`

在渲染器或编辑器中获取DataGrid的dataField

    博客分类:
  • Flex
阅读更多

要获取dataField首先要获取其父对象DataGrid,通过在渲染器中实现IDropInListItemRenderer接口,覆盖接口的两个方法。

 

private var _owner:DataGrid = null;   //父对象
			private var _dataGridColumns:DataGridColumn;
			private var _listData:DataGridListData;
			
			[Bindable("dataChange")]
			public function get listData():BaseListData
			{
				
				return _listData;
			}
			
			
			public function set listData(value:BaseListData):void
			{
				
				_listData = DataGridListData(value);
				_owner = value.owner as DataGrid; 
				_dataGridColumns = _owner.columns[_listData.columnIndex] as DataGridColumn;  //获取当前列
                                 trace(_dataGridColumns.dataField);    //获取dataField
			}
			

关于 DataGridListData,

 

Flex API 写道
语言版本: ActionScript 3.0
产品版本: Flex 3
运行时版本: Flash Player 9, AIR 1.1


BaseListData 类定义 listData 属性的数据类型,此属性由嵌入式项呈示器或嵌入式项目编辑器实现。所有嵌入式项呈示器和嵌入式项目编辑器必须实现 IDropInListItemRenderer 接口,此接口定义了 listData 属性。
listData 属性为 BaseListData 类型,其中 BaseListData 类包含三个子类:DataGridListData、ListData 和 TreeListData。listData 属性值的实际数据类型取决于使用嵌入式项呈示器或嵌入式项目编辑器的控件。对于 DataGrid 控件,此值为 DataGridListData 类型;对于 List 控件,此值为 ListData 类型;对于 Tree 控件,此值为 TreeListData 类型。

用作嵌入式项呈示器或嵌入式项目编辑器时,Flex 会将 listData 属性设置为 BaseListData-derived 类,其中包含与数据提供程序(包含项目数据)中的项目相关的计算信息。

尽管此类的属性是可写的,但应将其视为只读。这些属性由 List 类进行初始化,并由项呈示器或项目编辑器读取。更改这些值可能导致意外结果。

这些属性被标记为可绑定,但是这些属性不会实际执行任何 change 检测或发送 change 事件。通过为 listData 属性设置新值,这些属性会作为一个整体发生改变。用于修改 listData 属性的 change 事件将更新所有绑定。
 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics