Flex Tree的刷新问题,求救求救!!

牛哥真牛 2012-06-05 07:53:09
flex树的点击打开
//树的点击打开事件
protected function itemOpeningHandler(event:TreeEvent):void
{
selectedNode=event.item as SpecVO;
if(!specTree.isItemOpen(event.item)&&selectedNode.children.length==0)
{
// 此处通过Blazeds远程异步调用java端方法,获取数据
......


}
}

//通过Blazeds调用java端方法后flex端自动加载的方法,以此获取树节点的children,并刷新树
protected function remoteJavaData(event:ResultEvent):void
{
selectedNode.children=event.result as ArrayCollection;
treeData.itemUpdated(selectedNode);
}


<mx:Tree id="myTree" dataProvider="{treeData}"
itemOpening="itemOpeningHandler(event)" labelField="name" >
</mx:Tree>
其中treeData是一个ArrayCollection,其数据结果是从java端传过来的,如果通过在树上进行单机节点图标操作,树是可以打开的;现在我通过增加或删除某一节点,然后获取其父节点数据并指定给selectedNode,然后通过下列方法重新加载其children,这也是成功的,
protected function itemOpeningHandler(event:TreeEvent):void
{
selectedNode=event.item as SpecVO;
if(!specTree.isItemOpen(event.item)){
// 此处通过Blazeds远程异步调用java端方法,获取数据
......
}
只是在重新远程执行treeData.itemUpdated(selectedNode)时,树的数据没有刷新



寻求大家的帮助,谢谢!
...全文
499 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
risemypassion 2014-01-14
  • 打赏
  • 举报
回复
楼主最后怎么解决的,我现在也遇到了这个问题。麻烦分享一下最终方案~~
牛哥真牛 2012-06-07
  • 打赏
  • 举报
回复
求帮助啊
牛哥真牛 2012-06-07
  • 打赏
  • 举报
回复
自己顶啊,求帮助
牛哥真牛 2012-06-06
  • 打赏
  • 举报
回复
谢谢楼上各位指导,以上的方法我都实现了,即调用itemUpdated(item)方法,如果通过树的点击事件去打开树是没有错的,现在我的问题是通过其他方式制定这个item,不一定是点击事件获取item,这样虽然也获取到了item,并且item的children也是对的,也通过了调用itemUpdated(item)方法这一步,只是树的节点item的子节点还是没有刷新,比较郁闷啊,烦请各位大哥再帮帮忙啊
lzg823375476 2012-06-05
  • 打赏
  • 举报
回复
我用过json数据格式实现过树的动态加载,运行良好--
你的那个我在网上瞅了瞅,搜到了这个,希望能帮你一下http://www.cesclub.com/bw/jishuzhongxin/Webjishu/2011/1210/17467.html
lzg823375476 2012-06-05
  • 打赏
  • 举报
回复
弄了一个小程序实现了下,没有出现楼主的问题---
<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"

xmlns:tw="http://www.servasoftware.com/2009/twaver/flex"

applicationComplete="init()" xmlns:local="*">

<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;
[Bindable]
private var cbDate:ArrayCollection = new ArrayCollection([
{label:'icon1',img:'3.png',name:'dfl'},
{label:'icon2',img:'4.png',name:'lzg'},
{label:'icon3',img:'ZoomIn.png',name:'dfl'},
{label:'icon4',img:'ZoomOut.png',name:'ddfl'}
]);
[Bindable]
private var addDAta:ArrayCollection=new ArrayCollection([
{label:'icon1',img:'3.png',name:'dfl'}]);

private function add():void{
var item:Object=tree.selectedItem ;
item.children=addDAta;
cbDate.itemUpdated(item);
}
]]>
</mx:Script>
<mx:Button label="add" />
<mx:Button label="cancel"/>
<mx:Tree id="tree" dataProvider="{cbDate}" click="add()"></mx:Tree>
</mx:Application>

牛哥真牛 2012-06-05
  • 打赏
  • 举报
回复
自己顶下,咋没人帮我呢

4,327

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧