Ext 的树总是会自动加载,这就给加载时附带参数到后台带来了困难。
有几种解决方案:
1、在构建treestore时,在URL中传入参数,这中方式需要每次都重新构建store(也就是需要将原来的视图删除,再通过Ext.create创建树视图)
2、添加beforeload事件
var store = Ext.create('Ext.data.TreeStore', {
model : 'Tms.model.TreeInfo',
clearOnLoad : true,
proxy : {
type : 'ajax',
url : 'sys.sp?method=getJurisdictionScope'
},
listeners : {
exception : function(proxy, response, operation) {
Ext.MessageBox.show({
title : '服务器错误',
msg : operation.getError(),
icon : Ext.MessageBox.ERROR,
buttons : Ext.Msg.OK
});
},
beforeload : function(store, operation) {
if(!me.getQtId()){// 前端传递过来的参数,如果为空不加载
return false;
}
var new_params = {//参数
qtId : me.getQtId()
};
Ext.apply(store.proxy.extraParams, new_params);// 通过extraParams传递
}
}
});
设置参数,并调用tree的load方法重新加载树
loadJurScope : function(selModel, selected){
if(selected && selected[0]){
var record = selected[0];
var jsManage = this.getJsManage();
jsManage.setQtId(record.get('qtId'));
var deptTree = jsManage.down('#deptTree');
deptTree.getStore().load();
}
}
本文介绍了解决Ext树自动加载时如何附带参数到后台的问题。提供了两种方案:一是构建treestore时直接在URL中传参;二是利用beforeload事件添加参数。详细展示了通过beforeload事件设置参数并重新加载树的方法。
338

被折叠的 条评论
为什么被折叠?



