Flex DataGrid与DataGridColumn上的变量自定义itemEditor

时间:2010-06-18 15:27:09

标签: flex datagrid itemeditor

是否有基于dataField值创建自定义项目编辑器?例如:

<mx:DataGrid editable="true" dataProvider="{_actionArr}" id="prop">  
  <mx:column>
    <mx:DataGridColumn headerText="Component" editable="false" dataField="label"/>
    <mx:DataGridColumn headerText="Value" editable="true" itemEditor="{data.ie}"/>
  </mx:columns> 
</mx:DataGrid>

...

[Bindable] private var _actionArr:Array = [   
{ label:"Slider", val:"", ie:mx.controls.HSlider },   
{ label:"ComboBox", val:"", ie:mx.controls.ComboBox  },   
{ label:"Button", val:"", ie:mx.controls.Button}];

2 个答案:

答案 0 :(得分:2)

我过去通过创建一个自定义渲染器来处理这个问题,该渲染器包含所有三个控件,并通过在渲染器上设置数据时检查数据类型来确定哪个控件是可见的。您可以通过覆盖set data方法并相应地在三个控件上设置visible和includeInLayout属性来完成此操作。希望有所帮助。

答案 1 :(得分:0)

迟到的答案......您可以使用ClassFactory。 Farata Systems已经在此处发表了博客(http://flexblog.faratasystems.com/2006/09/26/ditemrenderers-vs-itemeditors)并在其书中提供了更详细的解释。