Extjs4.2 TreeStore 循环加载的问题

Extjs4.2 在使用treepanel的时候碰到循环加载的问题;

1、开始看现象就是前端不断的请求,导致不断的在某些节点上加载数据;

2、查看前端代码,网上有些帖子的解决办法说的是将TreeStore中的root节点的配置删除掉,但是我的代码中没有写root节点,具体代码如下:

Ext.define('MonitorData', {
		extend:  'Ext.data.Model',
		fields: [
			 //第一个字段需要指定mapping,其他字段,可以省略掉。
			 {name:'assigned',mapping:'assigned'},
			 'unconfirmedAssigned',
			 'investigatingAssigned',
			 'endNum',
			 'warnNum',
			 'overDayNum',
			 'allNum'
		]
	});
	var monitorStore = Ext.create('Ext.data.TreeStore',  {
		model:  'MonitorData',
		proxy:  {
			 //异步获取数据,这里的URL可以改为任何动态页面,只要返回JSON数据即可
			type:'ajax',
			url:  'zz/monitor',
			reader : {
                type : 'json'
            }
		},
		folderSort: true
	});

Treepanel:

xtype: 'treepanel',
renderTo: Ext.getBody(),  
width: 748,
height: 430,
split: true, 
autoScroll: true,
animate : true,
rootVisible: false,
store: monitorStore,
fields: ['treecolumn', 'unconfirmedAssigned', 'investigatingAssigned', 'endNum', 'warnNum', 'overDayNum', 'allNum'],
columns: [{
	xtype: 'treecolumn',
	text:  "已分配团队/用户",
					dataIndex:  'assigned',
					width: 170,
					sortable: true
				},{
					text:  "待定(未经确认)",
					dataIndex:  'unconfirmedAssigned',
					width: 125,
					sortable: false
				},{
					text:  "待定(正在调查)",
					dataIndex:  'investigatingAssigned',
					width: 125,
					sortable: true
				},{
					text:  "完毕",
					dataIndex:  'endNum',
					width: 75,
					sortable: true
				},{
					text:  "警告",
					dataIndex:  'warnNum',
					width: 75,
					sortable: true
				},{
					text:  "过期",
					dataIndex:  'overDayNum',
					width: 75,
					sortable: true
				},{
					text:  "总计",
					dataIndex:  'allNum',
					width: 75,
					sortable: true
				}]

3、最后在网上找了一段json数据放进去测试居然是好的,如下:

		String json =
				"["+
				"{assigned:1,unconfirmedAssigned:'01',"+
					"children:["+
						"{assigned:11,unconfirmedAssigned:'01-01',leaf:true},"+
						"{assigned:12,unconfirmedAssigned:'01-02',leaf:true}"+
					 "]}"+
				",{assigned:2,unconfirmedAssigned:'02',"+
					"children:["+
					   	"{assigned:21,unconfirmedAssigned:'02-01',leaf:true},"+
						"{assigned:22,unconfirmedAssigned:'02-02',leaf:true}"+
					 "]}"+
				"]";

通过这个代码与我返会的数据进行对比发现标注叶子节点leaf默认是false,所以你只要没有设置这个属性或者设置了一个叶子节点leaf属性为false后就会出现在那个节点上的循环加载。

你可能感兴趣的:(javascrip)