【问题标题】:While adding record in AdvanceDataGrid: TypeError: Error #1010: A term is undefined and has no properties在 AdvanceDataGrid 中添加记录时:TypeError:错误 #1010:术语未定义且没有属性
【发布时间】: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" height="460">
<mx:columns>
<mx:AdvancedDataGridColumn headerText="S No." dataField="rrd_Trans_No" labelFunction="fn_GetSNo" width="100" editable="false"/>
    <mx:AdvancedDataGridColumn headerText="Monthly Amount" dataField="rrd_Amount" width="110" labelFunction="fn_FormatAmountGrid"/>
    <mx:AdvancedDataGridColumn headerText="Effective From" dataField="rrd_Effective_From" width="100" rendererIsEditor="true"
        labelFunction="fn_FormateDate" itemRenderer="mx.controls.DateField" editorDataField="selectedDate"/>
    <mx:AdvancedDataGridColumn headerText="Narration" dataField="rrd_Narration" width="150" editable="true"/>
    <mx:AdvancedDataGridColumn headerText="Rental Income a/c" dataField="rrd_Acc_Code" id="rrd_Acc_Code" width="120" labelFunction="fn_FormatCOAGrid"/>
</mx:AdvancedDataGridColumn>
<mx:AdvancedDataGridColumn headerText="Description" dataField="rrd_Acc_Desc" id="rrd_Acc_Des" width="120" 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() 方法

标签: actionscript-3 flash apache-flex actionscript flash-builder


【解决方案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

    }

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2017-03-19
    • 1970-01-01
    • 2022-07-12
    • 1970-01-01
    • 1970-01-01
    • 2014-05-10
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    相关资源
    最近更新 更多