加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex4.5 DataGrid的GridItemEditor属性设置

发布时间:2020-12-15 04:40:13 所属栏目:百科 来源:网络整理
导读:在flex3里面,更改DataGrid的GridItemEditor非常方便,只需要设置itemEditor属性就可以了 比如要使用NumericStepper作为itemEditord? mx:DataGridColumn headerText="Quantity"dataField="quantity"itemEditor="mx.controls.NumericStepper"editorDataField=

在flex3里面,更改DataGrid的GridItemEditor非常方便,只需要设置itemEditor属性就可以了

比如要使用NumericStepper作为itemEditord?

<mx:DataGridColumn headerText="Quantity"
	dataField="quantity"
	itemEditor="mx.controls.NumericStepper"
	editorDataField="value">



这样就能正确的显示NumericStepper对应的值,已经更改他的值

在用flex4.5的时候使用itemEditor,差别还是很大的

官方文档中提到

一个"item editor"可以是任何一个实现了 IGridItemEditor 接口的Spark组件,并且DataGrid每列都可以指定不同的 "item editor" 类

也就是说不能随便指定控件了,必须是一个实现了 IGridItemEditor 接口的Spark组件才可以被用作itemEditor属性。

所有实现IGridItemEditor接口的类应该用 "data"的 setter 中去初始化编辑组件的值默认实现类GridItemEditor 用 data[column.dataField] 设置 value属性.?这样允许子类 通过 覆盖 value setter方法将值赋给更多的编辑控件.


所以如果使用NumericStepper的话就得当成一个GridItemEditor的child

Adobe的官方博客上有解决方案,重载了GridItemEditor的value属性的getter和setter

像这样

<s:GridColumn headerText="数量" dataField="quantity">
<s:itemEditor>  
		<fx:Component>  
			<s:GridItemEditor >  
				<s:NumericStepper id="quantity"/>  
				<fx:Script>
					<![CDATA[
						override public function get value():Object
						{
							return quantity.value;            
						}
						
						override public function set value(newValue:Object):void
						{
							quantity.value = newValue.toString();
						}                                        
					]]>
				</fx:Script>
			</s:GridItemEditor>  
		</fx:Component>  
	</s:itemEditor>  
</s:GridColumn>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读