请解释为什么我在datagrid列中使用itemrenderer和itemeditor组件时出现以下错误

时间:2011-04-11 14:39:29

标签: flex

代码:

<mx:DataGridColumn id="a" headerText="Notes" dataField="a" width="200" visible="true" editable="false" wordWrap="true" editorDataField="text">

<mx:itemRenderer>
    <mx:Component>
        <mx:HBox>
            <mx:Text width="100%" height="100%"/>
        </mx:HBox>
    </mx:Component>
</mx:itemRenderer>
<mx:itemEditor>
    <mx:Component>
        <mx:HBox>
            <renderers:EditorTextRenderer width="100%" />
        </mx:HBox>
    </mx:Component>
</mx:itemEditor> 

ErrorStackTrace: ReferenceError:错误#1069:在a.mxml.a_inlineComponent3上找不到属性文本,并且没有默认值。

2 个答案:

答案 0 :(得分:0)

我想,您的自定义组件EditorTextRenderer应包含属性text。或者您必须将editorDataField设置为该属性,该属性负责编辑。有关详细信息,请阅读this

一个简单的内联项编辑器包含一个支持data属性的控件。 Flex会自动将当前单元格数据复制到项目渲染器或项目编辑器,并根据 editorDataField 属性

的值将新单元格数据复制回列表控件

答案 1 :(得分:0)

首先,我不建议使用内联项目渲染器/编辑器。它会使代码变得邋and并阻止您在其他地方重复使用渲染器(这是一个重点;同样,如果在单独的文件中,它将更容易调试)。其次,我认为问题在于EditorTextRenderer,它可能已经是它自己的渲染器,并且不支持'text'属性。我想你想做的是:

<mx:itemEditor>
<renderers:EditorTextRenderer width="100%" />
   </mx:itemEditor>