在 AdvanceDataGrid 中添加记录时:TypeError:错误 #1010:术语未定义且没有属性
Posted
技术标签:
【中文标题】在 AdvanceDataGrid 中添加记录时:TypeError:错误 #1010:术语未定义且没有属性【英文标题】:While adding record in AdvanceDataGrid: TypeError: Error #1010: A term is undefined and has no properties 【发布时间】:2016-11-21 02:21:43 【问题描述】:TypeError:错误 #1010:术语未定义且没有属性。
我在 flex 中有一个可编辑的 AdvancedDataGrid:
<mx:AdvancedDataGrid id="dgTrans" dataProvider="arrDtlTransDP" styleName="advancedDataGrid" left="5" right="50"
doubleClickEnabled="true" itemDoubleClick="fn_EditFieldDetail(event);" maxWidth="850"
editable="true" top="27" rowHeight="20" verticalAlign="middle" resizableColumns="true"
allowMultipleSelection="true" allowDragSelection="true"
horizontalScrollPolicy="auto" >
<mx:columns>
<mx:AdvancedDataGridColumn headerText="S No." dataField="rrd_Trans_No" labelFunction="fn_GetSNo" editable="false"/>
<mx:AdvancedDataGridColumn headerText="Monthly Amount" dataField="rrd_Amount" labelFunction="fn_FormatAmountGrid"/>
<mx:AdvancedDataGridColumn headerText="Effective From" dataField="rrd_Effective_From" rendererIsEditor="true"
labelFunction="fn_FormateDate" itemRenderer="mx.controls.DateField" editorDataField="selectedDate"/>
<mx:AdvancedDataGridColumn headerText="Narration" dataField="rrd_Narration" editable="true"/>
<mx:AdvancedDataGridColumn headerText="Rental Income a/c" dataField="rrd_Acc_Code" id="rrd_Acc_Code" labelFunction="fn_FormatCOAGrid"/>
</mx:AdvancedDataGridColumn>
<mx:AdvancedDataGridColumn headerText="Description" dataField="rrd_Acc_Desc" id="rrd_Acc_Des" editable="false"/>
我添加了以下虚拟数据以防万一
var dgArray:Array = [
rrd_Trans_No:'1', rrd_Amount:'0.00',
rrd_Effective_From: new Date(2016,0,1),
rrd_Narration:'abc', rrd_Acc_Code:'0001',
rrd_Acc_Desc:'acd'
];
arrDtlTransDP.addItem(dgArray);
当我点击任何列来编辑这个虚拟数据时,我遇到了一个错误。
TypeError:错误 #1010:术语未定义且没有属性
【问题讨论】:
这是高级数据网格: 如果在代码顶部添加trace(arrDtlTransDP);
的结果是什么?
在访问 .additem() 方法之前,您是否在我们无法看到的代码中正确声明了“arrDtlTransDP”变量?喜欢var arrDtlTransDP:ArrayCollection = new ArrayCollection();
如果您在双击该项目时遇到错误,您可能还想发布您的 fn_EditFieldDetail() 方法
【参考方案1】:
首先,您要使用数组填充 arrDtlTransDP。立即将项目添加到 arrDtlTransDP,跳过 dgArray。
像这样:
arrDtlTransDP = new ArrayCollection();
arrDtlTransDP.addItem(
rrd_Trans_No:'1', rrd_Amount:'0.00',
rrd_Effective_From: new Date(2016,0,1),
rrd_Narration:'abc', rrd_Acc_Code:'0001',
rrd_Acc_Desc:'acd');
其次,我们需要有关函数实现的更多信息,以便正确地告诉您可能是什么问题。
我已经添加了这些实现,并且它在我的上述更改中正常工作:
protected function fn_FormatAmountGrid(item:Object, column:AdvancedDataGridColumn):String
return item.rrd_Amount;
protected function fn_FormatCOAGrid(item:Object, column:AdvancedDataGridColumn):String
return item.rrd_Acc_Code;
protected function fn_FormateDate(item:Object, column:AdvancedDataGridColumn):String
return item.rrd_Effective_From;
protected function fn_GetSNo(item:Object, column:AdvancedDataGridColumn):String
return item.rrd_Trans_No;
protected function fn_EditFieldDetail(event:ListEvent):void
// TODO Auto-generated method stub
我希望这会有所帮助。
【讨论】:
以上是关于在 AdvanceDataGrid 中添加记录时:TypeError:错误 #1010:术语未定义且没有属性的主要内容,如果未能解决你的问题,请参考以下文章