ext tree

问题描述

ext tree中有个expandAll的方法,怎么样知道全部展开完成呢treeloader里面可以通过url配置tree的数据源,那么在js中怎么样才能得到那个json字符串呢(只加载一次) 问题补充:只加载一次不是说只有一层,tree有很多层的,根节点expand后没有用的,估计还要2秒多才能展开完成,我说的是展开完成,数据加载了,展开才刚开始在load事件或者根节点中使用getNodeById(""),这个id如果是比较深层的节点是会报错的,只能等全部展开完才能我的本意是tree的数据到了,不要等它展开完成,就能通过id取得tree节点的text

解决方案

既然你的树数据只加载一次,也就是说只请求一次根节点,所有的节点数据都一次性全加载下来,那么可以在根节点的expand事件响应后,延后1毫秒执行,这时肯定都展开完毕(前提是未开启动画)。因为往后的所有节点加载都是本地进行了,会在一个JS任务内执行完毕,而不像ajax那样设定回调后中止,请求结束后重新执行。延后1毫秒的话,一定会在全部展开后才执行它。(参考JavaScript单线程性质及执行队列)tree.getRootNode().on("expand", function(){}, scope, {single:true, delay:1});想要取得那个json字串,只能重写TreeLoader了,稍微扩展下:var xxx = new Ext.tree.TreePanel({ ... loader : new Ext.tree.TreeLoader({ handleResponse : function(response){ // 自己处理response.responseText Ext.tree.TreeLoader.prototype.handleResponse.apply(this, arguments); } }), ...});

时间: 2024-08-31 19:58:00

ext tree的相关文章

ext-关于EXT tree树形菜单一次性加载的问题

问题描述 关于EXT tree树形菜单一次性加载的问题 这个问题纠结了,关于Ext js tree树形菜单一次性加载的问题.哪位能帮我解决下,感谢了,我这里把我博客园提问题网站:http://q.cnblogs.com/q/73256/ 由于没有金币,不能悬赏. 解决方案 自己用Ext.Ajax.request请求url地址一次性获取所有数据,然后在success中生成tree,设置tree的data为返回的数据(注意调用Ext.decode将ajax返回的字符串转为json对象)..

ext tree checkbox 中选中父节点,如何让子节点不展开

问题描述 我做有关ext tree checkbox的项目,基本上没有是什么大问题,就是在选中父节点时,所有的子节点都会展开,求问怎样才能在选中父节点时,子节点还是处于收缩状态 问题补充:lizhi92574 写道 解决方案 还得把node.expand(); //展开方法去掉解决方案二:node.eachChild(function(child) { child.ui.checkbox.checked = checked; child.ui.checkbox.defaultChecked =c

Ext tree 反复到下层取数据的问题

问题描述 参考网上的例子,自己写了一个利用extjs来表示权限的树的功能.但是,很奇怪的是,在成功地读取了一次树的json数据后,页面还会不断地再次到下层读取json数据.这样就形成了一个死循环,不知问题出在哪里,在这里发帖请教下!下面是我的部分js代码:<script type="text/javascript"><!--Ext.BLANK_IMAGE_URL = "<c:url value='/components/extjs/images/def

求S2SH+ext tree带checkbox的代码 急~~~~

问题描述 tree是个权限导航树 能进行修改什么的 有的发邮件290806418@qq.com 急啊 ~~~~~~~~~~~~~~~~~~~ 问题补充:数据库建表要有什么字段 我的只有 id name parentidextjs tree 识别的json该如何生成(action中怎么写 是通过拼字符串(怎么拼) 还是JSONArray.fromObject(0)直接能被extjs tree识别) 小弟刚接触EXT BOSS让弄个权限导航树 一星期了没弄出来 网上找不到很像的代码 (我觉得是我看不

ext tree 定位树节点

问题描述 树 : Ext.tree.TreePanel树节点 : new Ext.tree.AsyncTreeNode现在的问题是.当我通过条件定位树节点的时候.树的竖向滚动条,有的时候不会在可视范围内.网上有说是用scrollIntoView(),但是我一直获取不到当前被选择节点的div对象.期待解决方案...... 问题补充:clue 写道 解决方案 node.getUI().getEl()建议多翻翻API文档解决方案二:其实 直接找到节点 .focus();就可以了 没必要人为的 去定位.

Ext tree 节点的text 含有 table 标签时, 右键菜单 不能正常显示

问题描述 当节点的内容,含有 table标签时, 点击 table 部分的内容时,出现的右键菜单 是 浏览器默认的 针对 link 的右键菜单,比如 在新窗口中打开 之类的.而不是 自己定义的菜单. 点击其他部分时 可以正常显示. 请问大家有遇到过这种情况吗, 有什么好的解决办法 解决方案 添加以下代码可以解决Ext.tree.TreeEventModel.prototype.delegateContextMenu = function(e, A) {var t = e.getTarget()i

ext tree 如何添加消息提示?

问题描述 使用border 布局, tree在左边, 想要实现功能,当鼠标 mouseover的时候,给出一个消息提示. 问题补充:myali88 写道 解决方案 this.tree.fireEvent('mouseover', this.tree.getNodeById(nodeId), e); 这个发起的事件不是已经包含了事件对象本身吗?就是Extjs里面的EventObject,如果你要获取坐标的话,后面的监听处理器里面,这样定义:'mouseover' : function(node ,

Ext tree 叶子节点 添加链接 点击跳转问题 很急~

问题描述 我这个树没有href属性我现在想在判断是叶子节点的话 点击就跳转的问题var roleid =document.getElementById('roleid').getAttribute('data');Ext.BLANK_IMAGE_URL = "/dtjcsy/pages/js/ext/resources/images/default/s.gif";Ext.onReady(function() {var Tree= Ext.tree;var loader = new Ex

关于EXT tree的加载选中状态

问题描述 EXT不太熟悉,我现在EXT是加载一颗整树,我现在想做一个在树加载完成后,把一些节点默认选中,varloader=newResoft.wcm.OrgTreeLoader({dataUrl:'${pageContext.request.contextPath}/module/orgTree/subTree.do',requestMethod:'GET'});loader.on("beforeload",function(treeLoader,node){treeLoader.b