【ExtJS】修复tree重复加载Bug
2015-01-15 00:47
471 查看
treepanel,不管autoLoad什么值,都会先加载。
若再设置autoLoad为true,则再加载一遍。
属bug,官方v4版本有人提,v5中仍未解决。
解决方法:设置autoLoad为false,增加beforeload阻止由expand触发的load,自己调用load,可放在panel#afterRender中触发。
以下提到在beforeLoad中判断,如果store.isLoading()则返回false(阻止加载)。
这个在某些场合会有问题,首次加载由node#expand触发的,如果我们初始化此界面加入了一些过滤条件,需要再refresh(load)数据,就被阻止了。
http://www.sencha.com/forum/showthread.php?260052 http://www.sencha.com/forum/showthread.php?287930
若再设置autoLoad为true,则再加载一遍。
属bug,官方v4版本有人提,v5中仍未解决。
解决方法:设置autoLoad为false,增加beforeload阻止由expand触发的load,自己调用load,可放在panel#afterRender中触发。
//viewModel stores stores : { dataList : { model : 'My.model.UserModel', remoteFilter : true, autoLoad : false, autoFilter : false, type : 'tree', nodeParam : 'id', root : { expanded : true }, listeners : { beforeload : function(store, operation, opts) { //阻止加载 if(!store._can_load_){ return false; } return true; } } } } var cfg={...}; if (store.type == 'tree') { /** * 【fix extjs bug】 * 结合viewModel.dataList.listeners.beforeload方法,防止tree重复加载。 */ if (store.root && !store._can_load_) { // 第一次,执行expand,触发load。 store._can_load_ = true; store.root.expand(true); } else { store._can_load_ = true; store.load(cfg); } } else { store.load(cfg); }
以下提到在beforeLoad中判断,如果store.isLoading()则返回false(阻止加载)。
这个在某些场合会有问题,首次加载由node#expand触发的,如果我们初始化此界面加入了一些过滤条件,需要再refresh(load)数据,就被阻止了。
http://www.sencha.com/forum/showthread.php?260052 http://www.sencha.com/forum/showthread.php?287930
相关文章推荐
- Extjs treePanel 的treestore重复加载问题解决
- ExtJs TreePanel使用TreeLoader在IE下无法正常加载显示的解决方法
- Extjs 的Tree动态加载
- 【IE6】一个IE6下重复加载的BUG
- 一个IE6下重复加载的BUG
- extjs4 tree中加载的数据格式
- ExtJs Tree的操作:注册事件,拖拽(目标位置的判断)、点击事件、加载之间事件、右键菜单
- 解决CSS背景图片闪动和重复加载的IE6BUG
- 动态异步加载树 ExtJS2,以JSON(JavaScript Object Notation)TreeLoader
- Extjs中左边treepanel右边panel动态加载jsp页面
- ExtJs TreePanel 不能加载ashx数据的解决办法
- asp.net mvc + ExtJs 实现无限级TreePanel 加载、添加、编辑、删除
- 关于EXTJS 树(tree)的demo包括AsyncTreeNode 加载数据
- extjs的treepanel不自动加载的实现
- (更新版)ExtJS Tree利用json(直接传List TreeNode,不需要转化为JSONArray)在Struts 2实现Ajax动态加载树结点
- jQuery lazyload 的重复加载错误以及修复方法
- ExtJs TreePanel使用TreeLoader在IE下无法正常加载显示的解决方法
- Extjs 3.x treePanel 加载异常
- extjs 2.3 修复 jsonstore 嵌套多级引用数据NULL的BUG