Flex可编辑DataGrid的输入例子

参考:http://blog.csdn.net/newskl/archive/2009/09/11/4538780.aspx

 

DataGrid设置editabletrue

DataGrid设置itemEditEnd 响应为mergePTO 函数

不需要的DataGridColumn 设置editablefalse

 

<mx:DataGrid id="ptoDG" width="100%" height="100%"
        dataProvider="{modelLocator.ptoArrayCollection}"
	editable="true" itemEditEnd="mergePTO(event)">
	<mx:columns>
		<mx:DataGridColumn headerText="User" labelFunction="userFunction"
            editable="false" />
		<mx:DataGridColumn headerText="PTO" dataField="pto" />
		<mx:DataGridColumn headerText="Factor" dataField="factor" />
		<mx:DataGridColumn headerText="Sprint" labelFunction="sprintFunction"
            editable="false" />
		<mx:DataGridColumn headerText="Release" labelFunction="releaseFunction"
            editable="false" />
		<mx:DataGridColumn headerText="Product" labelFunction="productFunction"
            editable="false" />
	</mx:columns>
</mx:DataGrid>

 

private function mergePTO(e:DataGridEvent):void
{
        // 如果没有更新数据则直接返回,例如键盘ESC退出
	if (e.reason == DataGridEventReason.CANCELLED) return;
	else
	{
                // 获取编辑单元格的值
		var newData:String = TextInput(e.currentTarget.itemEditorInstance).text;
		switch (e.dataField)
		{
			case "pto":
				if (newData != ptoDG.selectedItem.pto)
				{
					var selectedPTO:UserProp = ptoDG.selectedItem as UserProp;
					selectedPTO.pto = newData;
					
					var evt:PTOAdminEvent =
                       new PTOAdminEvent(PTOAdminEvent.EDIT_PTO, selectedPTO);
					CairngormEventDispatcher.getInstance().dispatchEvent(evt);
				}
				break;
			case "factor":
				if (newData != ptoDG.selectedItem.factor)
				{
					var selectedPTO1:UserProp = ptoDG.selectedItem as UserProp;
					selectedPTO1.factor = newData;
					
					var evt1:PTOAdminEvent =
                        new PTOAdminEvent(PTOAdminEvent.EDIT_PTO, selectedPTO1);
					CairngormEventDispatcher.getInstance().dispatchEvent(evt1);
				}
				break;
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值