flex4.5 DataGrid的GridItemEditor属性设置

在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>



  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值