【问题标题】:Please explain why i am getting the following error when I use itemrenderer and itemeditor components in the datagrid column请解释为什么我在 datagrid 列中使用 itemrenderer 和 itemeditor 组件时出现以下错误
【发布时间】:2011-04-11 14:39:28
【问题描述】:

代码:

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

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

【问题讨论】:

    标签: apache-flex


    【解决方案1】:

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

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

    【讨论】:

    • 我已经在datagridcolumn中设置了editorDataField="text"
    • @flex_novice,是的,我明白了。但是“文本”属性必须存在于您的 itemEditor 类中(在您的情况下为 EditorTextRenderer)。
    • 是的,我已经在自定义渲染器类的设置数据覆盖方法中设置了属性“文本”。如果我使用 代替我的自定义组件,那么也会得到同样的错误..
    • &lt;mx:VBox&gt; &lt;mx:HBox click="event.currentTarget.getChildAt(0).dispatchEvent(new MouseEvent(MouseEvent.CLICK, false))"&gt; &lt;mx:RadioButton/&gt; &lt;mx:Label htmlText="Hello &amp;lt;b&gt;world&amp;lt;/b&gt;"/&gt; &lt;/mx:HBox&gt; &lt;mx:HBox click="event.currentTarget.getChildAt(0).dispatchEvent(new MouseEvent(MouseEvent.CLICK, false))"&gt; &lt;mx:RadioButton/&gt; &lt;mx:Label htmlText="&amp;lt;b&gt;Hello&amp;lt;/b&gt; world"/&gt; &lt;/mx:VBox&gt;
    【解决方案2】:

    首先,我不建议使用内联项渲染器/编辑器。它会产生草率的代码并阻止您在其他地方重用渲染器(这是重点;另外,如果在单独的文件中,调试会更容易)。其次,我认为问题在于EditorTextRenderer,它可能已经是自己的渲染器并且不支持“文本”属性。我想你想做的是这样的:

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

    【讨论】:

    • @JAX 请告诉我如何解决这个问题。在这种情况下你的方法是什么
    猜你喜欢
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 2017-03-17
    • 2015-08-04
    • 2023-03-27
    • 2019-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多