ExtJS 4.2 树形结构请求后台数据无法展示子节点,而是没点击一次请求一次数据,无限请求加载所有的父节点元素

来源:互联网 发布:ubuntu 用户管理 编辑:程序博客网 时间:2024/06/05 11:43

问题:ExtJS 4.2 树形结构请求后台数据无法展示子节点,而是没点击一次请求一次数据,无限请求加载所有的父节点元素

解决办法:首先获取到后台数据,然后重写(重新创建)store,store里面需要加上root:{expanded:true,children:data(后台获取的数据)},然后再创建tree;

试过了下面这种方法会报错   

new Ext.tree.TreePanel({animate:false,autoScroll:true,containerScroll:true,border:false,height:300,useArrows:true,animCollapse:false,root:{nodeType:“async”,id:“root”,expanded:false},loader:new Ext.tree.TreeLoader({url:“”,baseParams:{root:“productLine”}}),rootVisible:false})

最后的解决方法代码贴下面:

Ext.Ajax.request({    url: url,//请求durl   method: "GET",    // jsonData: paramObj,    autoLoad: false,    ContentType: 'application/json;charset=utf-8',    success: function(response, opts) {        if (response.responseText) {            var resText = JSON.parse(response.responseText);            if (resText.success ==true) {                data =resText.data;               //创建store  (主要是加上root)                var store = Ext.create('Ext.data.TreeStore', {                    root: {                        expanded: true,                        children: data                    }                });                //创建treePanel                var tree = Ext.create('Ext.tree.Panel', {                    alias:'widget.treePanelStore',                    title: '会员',                    width: 200,                    height: 500,                    store: store,                    rootVisible: false,                    renderTo: Ext.getBody()                });                //树节点监听事件                tree.on('itemclick', function(view, record, item, index, e, opts) {                                  })                form.add(tree);//添加到panel            } else {                Ext.Msg.alert("失败", '加载失败,请稍后再试!');            }        } else {                
            Ext.Msg.alert("失败", '加载失败,请稍后再试!');
} }, failure: function(response) { },


阅读全文
1 0
原创粉丝点击