You could also have done private function addFromTopDG():void { var obj:Object = ObjectUtil.copy(fromDG.selectedItem); delete obj.mx_internal_uid; (toDG.dataProvider as ArrayCollection).addItem(obj); obj = null; } We would auto-generate it for you.
________________________________ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Ju Aedis Sent: Thursday, April 12, 2007 12:46 AM To: [EMAIL PROTECTED] Subject: Re: [flexcoders] mx_internal_uid Problem in Add Data Alex: Thanks, I edited the code : private function addFromTopDG():void { var obj:Object = ObjectUtil.copy(fromDG.selectedItem); obj.mx_internal_uid = UIDUtil.createUID(); (toDG.dataProvider as ArrayCollection).addItem(obj); obj = null; } this way can change the uid, & you said I can delete the uid before copy it ,can you give me an example?thanks 12 Apr 2007 00:39:38 -0700, Alex Harui <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> >: If they are truly the same data, you should prevent them from being added twice. If they are clones/copies, then you can always delete the uid before copying it. However if you use strongly-typed classes instead of dynamic objects you shouldn't have this problem provided you clone them using ObjectUtil -Alex ________________________________ From: [EMAIL PROTECTED] <http://ups.com/> [mailto: flexcoders@ <mailto:flexcoders@> yahoogroups.com <http://yahoogroups.com> ] On Behalf Of aedisju Sent: Wednesday, April 11, 2007 10:37 PM To: [EMAIL PROTECTED] ups.com <http://ups.com/> Subject: [flexcoders] mx_internal_uid Problem in Add Data the problem is that when I add the selectedItem data from fromDG to toDG twice or more. U can find the mx_internal_uids are the same value, It causes problem that the DG thought that they are the same object. Of course, I can't mousefocus in it. Any One can help me? Thanks! Code: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx=" http://www.adobe.com/2006/mxml <http://www.adobe.com/2006/mxml> "> <mx:Script> <![CDATA[ import mx.utils.ObjectUtil; import mx.controls.Alert; import mx.collections.ArrayCollection; [Bindable] public var dataArr:Array = [{label:"Red", data:"#FF0000"}, {label:"Green", data:"#00FF00"}, {label:"Blue", data:"#0000FF"} ]; [Bindable] public var problemArr:Array = new Array(); private var i:Number = 0; private function addFromTopDG():void { //app_From_DG.selectedItem.label = ""+i++; //if you change the data, problem is still here (toDG.dataProvider as ArrayCollection).addItem(fromDG.selectedItem); } ]]> </mx:Script> <mx:DataGrid id="fromDG" width="600" height="200" dataProvider="{dataArr}"> <mx:columns> <mx:Array> <mx:DataGridColumn width="300" dataField="mx_internal_uid"/> <mx:DataGridColumn dataField="label"/> <mx:DataGridColumn dataField="data"/> </mx:Array> </mx:columns> </mx:DataGrid> <mx:Button label="Add from Top_DG" click="addFromTopDG()"/> <mx:DataGrid id="toDG" width="600" height="200" dataProvider="{problemArr}"> <mx:columns> <mx:Array> <mx:DataGridColumn width="300" dataField="mx_internal_uid"/> <mx:DataGridColumn dataField="label"/> <mx:DataGridColumn dataField="data"/> </mx:Array> </mx:columns> </mx:DataGrid> </mx:Application> -- Aedis.Ju--http://aedisju.blogspot.com/