extjs 异步加载树的构建

    在一个目录层次比较多的Tree中,一次性构造一棵树,不是一个好的实践,因为那样在Tree加载时,会耗用过多的时间,所以,利用异步的方式构建Tree就显得重要了。

    Ext.tree.TreePanel从机制上,提供了异步加载的机制,通过对‘beforeload’事件的响应:

var treeUrl ='url';
new Ext.tree.TreePanel({
...
   root : new Ext.tree.AsyncTreeNode({
				id:'root'
				}),

   listeners : {
	'beforeload':function(node){
		if(node.id == 'root')
		{
			tree.loader.dataUrl=treeUrl;
		}
		else
		{//Url和需要的参数
			tree.loader.dataUrl=treeUrl+'?id='+node.id+'&text='+encodeURI(encodeURI(node.text));//
		}
	}
	}
});

 ExtJS会自动的处理这个事件的调用:当TreeNode的leaf属性为false,第一次打开时,就调用所定义的url,加载下级数据,且这个数据只加载一次。

你可能感兴趣的:(ext)