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)时,树的数据没有刷新寻求大家的帮助,谢谢!
//树的点击打开事件
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)时,树的数据没有刷新寻求大家的帮助,谢谢!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货