您的位置:首页 > Web前端 > JavaScript

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

2017-08-10 11:25 645 查看
问题: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) { },
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐