在DataGrid中获取属性**文本**未找到错误

时间:2010-08-09 06:01:03

标签: flex datagrid itemeditor

我正在为DataGrid使用自定义itemEditor。 itemEditor有一个简单的TextField作为组件。 但是,当我点击单元格时,我收到一个错误: ReferenceError:错误#1069:在editors.customItemEditor上找不到属性文本,并且没有默认值。  在mx.controls :: DataGrid / itemEditorItemEditEndHandler()[C:\ autobuild \ 3.2.0 \ frameworks \ projects \ framework \ src \ mx \ controls \ DataGrid.as:4827]

Plz帮我解决了这个问题。

我的意见是“文本”字段出现错误。但我没有访问“文本”字段或在我的代码中的任何地方使用它。

此致 拉维

3 个答案:

答案 0 :(得分:1)

我解决了提交包含“返回数据[”选择“]。toString()”进入获取文本的问题:

    <mx:DataGridColumn dataField="selected" rendererIsEditor="true" >
            <mx:itemRenderer> 
                <fx:Component>
                    <mx:Box styleName="" width="100%" height="100%" backgroundAlpha="0.0"
                            horizontalAlign="center" verticalAlign="middle">

                        <fx:Script>
                            <![CDATA[

                                public function get text():String
                                {
                                    return data["selected"].toString();
                                }
                                public function set text(value:String):void
                                {

                                }
                                protected function checkbox1_clickHandler(event:MouseEvent):void
                                {
                                    data["selected"]=event.target["selected"];
                                }
                            ]]>
                        </fx:Script>

                        <mx:CheckBox selected="{data.selected}" click="checkbox1_clickHandler(event)"/>
                    </mx:Box>
                </fx:Component>
            </mx:itemRenderer>              
        </mx:DataGridColumn>

答案 1 :(得分:0)

取自http://livedocs.adobe.com/flex/3/html/help.html?content=celleditor_8.html

默认情况下,Flex期望项目编辑器将单个值返回到基于列表的控件。您可以使用基于列表的控件的editorDataField属性来指定包含新数据的项目编辑器的属性。 Flex将值转换为单元格的相应数据类型。

默认项目编辑器是TextInput控件。因此,editorDataField属性的默认值是“text”,它对应于TextInput控件的text属性。如果指定自定义项目编辑器,还可以将editorDataField属性设置为项目编辑器的相应属性

答案 2 :(得分:0)

我仍然对这个错误感到震惊,但我认为有希望摆脱它......:)

如果我们将TextInput作为itemEditor,例如:

dataGridColumn.itemEditor = new ClassFactory(TextInput);

然后没有问题,因为TextInput.as内部定义了“text”。 在类似的说明,如果我复制设置文本并在我们的自定义编辑器中获取文本,那么它的工作正常..只有问题 即将到来的是提交改变的价值观。

我正在努力,希望我能够解决它。

P.S。:我是这里的新手,所以请原谅任何愚蠢的RnD ......:p