Flex ArrayCollection中Object 属性重新赋值

叁歲伎倆 2022-09-29 06:34 185阅读 0赞

1.假如ArrayCollection如下

  1. var arrDataList:ArrayCollection=new ArrayCollection();
  2. var item:Object=new Object();
  3. item.BANK_ABSTRACT="银行对账单余额";
  4. item.BANK_POSTINGDATE="";
  5. item.BANK_DOCNUM="";
  6. item.BANK_MONEY=bankBalance;
  7. item.BANK_REASON="";
  8. item.COMPANY_ABSTRACT="公司银行存款账面余额";
  9. item.COMPANY_POSTINGDATE="";
  10. item.COMPANY_DOCNUM="";
  11. item.COMPANY_MONEY=bookBalance;
  12. item.COMPANY_REASON="";

2.DataGrid定义如下:

  1. <mx:AdvancedDataGrid id="datagrid" width="100%" height="200" dataProvider="{arrDataList}"
  2. verticalScrollPolicy="auto" editable="true" itemEditEnd="onItemEditEnd(event)">
  3. <mx:groupedColumns>
  4. <mx:AdvancedDataGridColumnGroup headerText="银行">
  5. <mx:AdvancedDataGridColumn headerText="摘要" dataField="BANK_ABSTRACT">
  6. <!--
  7. <mx:itemRenderer>
  8. <mx:Component>
  9. <mx:Label>
  10. <mx:Script>
  11. <![CDATA[
  12. override public function set data(value:Object):void
  13. {
  14. super.data=value;
  15. if(value.BANK_ABSTRACT=="+")
  16. {
  17. this.text="加:企收银未收";
  18. }
  19. else{
  20. this.text="减:企付银未付";
  21. }
  22. }
  23. ]]>
  24. </mx:Script>
  25. </mx:Label>
  26. </mx:Component>
  27. </mx:itemRenderer>
  28. -->
  29. </mx:AdvancedDataGridColumn>
  30. <mx:AdvancedDataGridColumn headerText="入账日期" dataField="BANK_POSTINGDATE"/>
  31. <mx:AdvancedDataGridColumn headerText="原始单据号码" dataField="BANK_DOCNUM"/>
  32. <mx:AdvancedDataGridColumn headerText="金额(元)" dataField="BANK_MONEY"/>
  33. <mx:AdvancedDataGridColumn headerText="未达原因" dataField="BANK_REASON"/>
  34. </mx:AdvancedDataGridColumnGroup>
  35. <mx:AdvancedDataGridColumnGroup headerText="公司">
  36. <mx:AdvancedDataGridColumn headerText="摘要" dataField="COMPANY_ABSTRACT"/>
  37. <mx:AdvancedDataGridColumn headerText="入账日期" dataField="COMPANY_POSTINGDATE"/>
  38. <mx:AdvancedDataGridColumn headerText="原始单据号码" dataField="COMPANY_DOCNUM"/>
  39. <mx:AdvancedDataGridColumn headerText="金额(元)" dataField="COMPANY_MONEY"/>
  40. <mx:AdvancedDataGridColumn headerText="未达原因" dataField="COMPANY_REASON"/>
  41. </mx:AdvancedDataGridColumnGroup>
  42. <mx:AdvancedDataGridColumn headerText="操作"/>
  43. </mx:groupedColumns>
  44. </mx:AdvancedDataGrid>

3.DataGrid单元格编辑后需要获取新值,并把新值更新到ArrayCollection中,那么,DataGrid单元格编辑完成后事件方法如下:

  1. private function onItemEditEnd(event:AdvancedDataGridEvent):void{
  2. var col:AdvancedDataGridColumn=datagrid.columns[event.columnIndex];
  3. var newValue:String=datagrid.itemEditorInstance[col.editorDataField];
  4. var dsFieldName:String=event.dataField;
  5. arrDataList.getItemAt(event.rowIndex)[dsFieldName]=newValue;
  6. }

注意上面 arrDataList.getItemAt(event.rowIndex)[dsFieldName]=newValue;代码部分,动态给属性重新赋值时,需要用[]把属性变量括起来。

发表评论

表情:
评论列表 (有 0 条评论,185人围观)

还没有评论,来说两句吧...

相关阅读