Flex ArrayCollection中Object 属性重新赋值

本文介绍了一个使用 Flex 的 AdvancedDataGrid 控件来显示和编辑数据的示例。展示了如何定义 DataGrid 结构、配置列以及在单元格编辑结束后更新 ArrayCollection 中的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.假如ArrayCollection如下

var arrDataList:ArrayCollection=new ArrayCollection();
var item:Object=new Object();
item.BANK_ABSTRACT="银行对账单余额";
item.BANK_POSTINGDATE="";
item.BANK_DOCNUM="";
item.BANK_MONEY=bankBalance;
item.BANK_REASON="";
item.COMPANY_ABSTRACT="公司银行存款账面余额";
item.COMPANY_POSTINGDATE="";
item.COMPANY_DOCNUM="";
item.COMPANY_MONEY=bookBalance;
item.COMPANY_REASON="";

2.DataGrid定义如下:

<mx:AdvancedDataGrid id="datagrid" width="100%" height="200" dataProvider="{arrDataList}"
				verticalScrollPolicy="auto" editable="true" itemEditEnd="onItemEditEnd(event)">
				<mx:groupedColumns>
					<mx:AdvancedDataGridColumnGroup headerText="银行">
						<mx:AdvancedDataGridColumn headerText="摘要" dataField="BANK_ABSTRACT">
							<!--
							<mx:itemRenderer>
								<mx:Component>
									<mx:Label>
									<mx:Script>
										<![CDATA[
											override public function set data(value:Object):void
											{
												super.data=value;
												if(value.BANK_ABSTRACT=="+")
												{
													this.text="加:企收银未收";
												}
												else{
													this.text="减:企付银未付";
												}
											}
										]]>
									</mx:Script>
									</mx:Label>
								</mx:Component>
							</mx:itemRenderer>
							-->
						</mx:AdvancedDataGridColumn>
						<mx:AdvancedDataGridColumn headerText="入账日期" dataField="BANK_POSTINGDATE"/>
						<mx:AdvancedDataGridColumn headerText="原始单据号码" dataField="BANK_DOCNUM"/>
						<mx:AdvancedDataGridColumn headerText="金额(元)" dataField="BANK_MONEY"/>
						<mx:AdvancedDataGridColumn headerText="未达原因" dataField="BANK_REASON"/>
					</mx:AdvancedDataGridColumnGroup>
					<mx:AdvancedDataGridColumnGroup headerText="公司">
						<mx:AdvancedDataGridColumn headerText="摘要" dataField="COMPANY_ABSTRACT"/>
						<mx:AdvancedDataGridColumn headerText="入账日期" dataField="COMPANY_POSTINGDATE"/>
						<mx:AdvancedDataGridColumn headerText="原始单据号码" dataField="COMPANY_DOCNUM"/>
						<mx:AdvancedDataGridColumn headerText="金额(元)" dataField="COMPANY_MONEY"/>
						<mx:AdvancedDataGridColumn headerText="未达原因" dataField="COMPANY_REASON"/>
					</mx:AdvancedDataGridColumnGroup>
					<mx:AdvancedDataGridColumn headerText="操作"/>
				</mx:groupedColumns>
			</mx:AdvancedDataGrid>
3.DataGrid单元格编辑后需要获取新值,并把新值更新到ArrayCollection中,那么,DataGrid单元格编辑完成后事件方法如下:

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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值