Extjs关于treepanel.expandAll()即展开全部树节点引发的问题

yjsyx333 2014-07-11 02:46:36
创建并打开一个tabpanel,里面布局为左右两部分,左边部分放一个gridpanel,右边部分放一个treepanel,一开始左边的gridpanel渲染查出若干条记录并默认选中第一条,然后将选中的记录的某一列的值作为参数传递给右边的treepanel,treepanel开始加载并且自动展开所有节点,因为展开全部节点的过程需要一定的时间,此时如果没完全展开的时候就关闭这个tabpanel(或者此时通过事件代码重新加载treepanel,treepanel的节点怎么都加载不出来了),下次再打开tabpanel的时候,里面的treepanel的节点怎么都加载不出来了,看样子好像是treepanel.expandAll()没完全展开就执行了别的操作影响的,这个问题有什么合适的解决方法吗?
...全文
1166 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanbaolin20085567 2014-07-18
  • 打赏
  • 举报
回复
楼主,你是怎么解决的啊,求共享
yjsyx333 2014-07-16
  • 打赏
  • 举报
回复
引用 3 楼 showbo 的回复:
expandAll( [callback], [scope] ),传递回调。。

window.finish=false;//设置为未完成状态
tree.expandAll(function(){
  window.finish=true;//展开完毕设置为true
})
tabpanel
beforeclose:function(){
 return  window.finish//返回是否完成状态以便控制是否允许关闭tab
}
我用的ext版本是3.2.1,这个tree.expandAll()好像没提供回调方法,在网上找到一个全部展开的方法deepExpand还挺好用的,不用判断全部展开后了提前关闭也没出问题,看起来好像有同步的效果,这个问题算是解决了,谢谢你提供的思路,本人javascript基础相对薄弱,以后再有问题还请多多帮助
jinyang10013 2014-07-14
  • 打赏
  • 举报
回复
学习 尝试一下
Go 旅城通票 2014-07-13
  • 打赏
  • 举报
回复
expandAll( [callback], [scope] ),传递回调。。

window.finish=false;//设置为未完成状态
tree.expandAll(function(){
  window.finish=true;//展开完毕设置为true
})
tabpanel
beforeclose:function(){
 return  window.finish//返回是否完成状态以便控制是否允许关闭tab
}
yjsyx333 2014-07-13
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
tabpanel关闭已经改从dom中移除了,导致数据返回的时候找不到dom对象报错了吧。。自己加个全局变量判断操作是否完毕,如果没有完毕不允许关闭tabpanel
谢谢,这个判断是否完毕的之前我也想到过但没什么头绪,怎样判断treepanel.expandAll()是完全展开完毕呢?
Go 旅城通票 2014-07-12
  • 打赏
  • 举报
回复
tabpanel关闭已经改从dom中移除了,导致数据返回的时候找不到dom对象报错了吧。。自己加个全局变量判断操作是否完毕,如果没有完毕不允许关闭tabpanel

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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