在 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:术语未定义且没有属性的主要内容,如果未能解决你的问题,请参考以下文章

在访问中使用表单添加新记录时如何在表单字段中保留公式

在剑道可编辑网格中,下拉值在添加新记录时重置

继续在历史记录中前后添加行

CakePHP - 如何在保存时将关联记录添加到模型中?

具有空存储的 ExtJS 网格,在添加/插入时仅显示添加的最新记录 [关闭]

在 AfterInsert DataMaco 中使用 VBA 调用时引用刚刚添加的记录