我正在为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帮我解决了这个问题。
我的意见是“文本”字段出现错误。但我没有访问“文本”字段或在我的代码中的任何地方使用它。
此致 拉维
答案 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