Flex:XMLlistCollection之间的赋值问题

Posted on 2009-03-06 13:37 Robert Su 阅读(1758) 评论(0)  编辑  收藏 所属分类: Flex
昨天一直被一个问题困扰,关于XMLlistCollection的赋值问题
问题概述:
 <mx:DataGrid  id="videoList" dataProvider="{gridData}" ...

gridData定义
[Bindable] public var gridData:XMLListCollection = new XMLListCollection();

gridData的取值来自于
<mx:HTTPService id="videoXml"  method="POST" url="{serviceUrl}" resultFormat="e4x" result="loadDataOk();"  />
 <mx:XMLListCollection id="videoSrc" source="{videoXml.lastResult.webVideos}"/>

这样的做的目的在于想把每次请求回来的数据累加——“ +=”

之前一直错误的赋值方式:
gridData=videoSrc
这样会导致dataProvider与gridData指向同一个对象,与指针一样。

所以当HTTPService 返回数据改变, videoSrc改变的时候,DataProvider里的数据都是videoSrc当前数据
而大小已经变成了gridData一样的大小了

改正后代码
if(gridData.length==0){
     //gridData=videoSrc; //错误代码
     gridData = new XMLListCollection((XMLList)(videoSrc.source));
    }else{
     gridData=MergXMLCollect(gridData,videoSrc); 
    }

只有注册用户登录后才能发表评论。


网站导航:
 

posts - 103, comments - 104, trackbacks - 0, articles - 5

Copyright © Robert Su