关于Flex的DataGridColumn 的editorDataField属性

本人Flex菜鸟,纯纯的小白

最近在项目中提了一个需求,其实这个需求就是在原有的列表中接一列数据,只不过这一列数据是下拉列表选择的

最关键的是貌似以前的某一位大神已经添加过,我的工作就是调通,可是就是这个调试要了命了,每次点击下拉框的时候,

选择的时候是对的,鼠标点击别的地方突然就变成了NULL,蒙蔽了,who can tell me why!WTF!

调整心情继续排查:

1、是传的参数有问题吗?

2、选择事件出了问题?

3、FOUCSOUT事件出错了?

  开始输出日志跟踪(搞过FLEX的都知道,这玩意完全没办法像js一样跟踪,只能Alert,多么痛的领悟),日志输出没有出错,但是每次会多打印两边(这块是DataGridColumn的labelFunction触发问题,下一次再说)首先可以确定,传参没有问题;选择事件很难测试(稍有不慎,页面就会更疯了似得弹框,完全崩溃了);完全没有任何地方调用FOUCSOUT事件;最后实在无奈就抱着试一试的态度,用最笨的方法挨个属性排除DataGridColumn的每一个属性,最后惊喜来了editorDataField,对就是他,完全不知道是个什么鬼的玩意折磨了我两天,两天啊!

  首先介绍一下这个玩意,下面是摘抄的,来自:http://blog.csdn.net/vincent50411/article/details/38532307 flex中dataGrid的编辑功能详解
  当我们点击datagrid中的一个单元格进行编辑时,可结合使用一些组件,RadioButtonGroup、checkbox、ComboBox等datagrid的编辑功能必须使用以下组件:editorDataField、itemEditor和itemRenderer。
  editorDataField 属性确定包含新数据的项目编辑器的属性,并使用这些新数据更新数据提供程序项目。因为默认项目编辑器是 TextInput 控件,所以 editorDataField 属性的默认值为 "text",以指定 TextInput 的 text 属性包含新项目数据。
  itemEditor为DataGrid的单元格编辑器,而itemRenderer则为渲染器,就是说.itemEditor只会在单元格处理编辑状态下才会出现.
  itemRenderer则是一直显示(就是网友关心的,自定义DataGrid的列)

  了解这玩意之后,我们再来说说这玩意怎么用,继续摘抄:https://www.cnblogs.com/iihe602/articles/1561203.html 在DataGrid使用itemRender和itemEditor,综合一例

  这玩意就是在DataGridColumn插入一个可以编辑的控件,这个控件的那个属性可以作为当前提供修改的,类似于key-value的key,需要告诉父一级的控件,“儿啊,你那个是要变得,你得告诉爹,爹好给你显示!”,“爹啊,就是这玩意,你看好了,要是变了你就变!”;问题来了这父子俩是脑残,不交代清楚就挂电话了,完了,只能交给大爷了---程序员,大爷就成了一个传话员(提供接口的),好了整个过程差不多了!

   <----------------你儿子变了,你也变吧---------------------- 大爷   <------------------变了啊--------儿子    

 

 

原文地址:https://www.cnblogs.com/scyitgz/p/8479265.html