Ext.onReady(function(){
// 开启表单提示
Ext.QuickTips.init();
// 设置提示信息位置为边上
Ext.form.Field.prototype.msgTarget = 'side';
// 树
NavTree = function() { // navTree类
var nav;
var loader;
var root;
var leafMenu;
var dirMenu;
return {
init : function() {
if (!loader) {
loader = new Ext.tree.TreeLoader({ // 实例化loader
// TreeLoader
url : "../../marketrisk/relativerisk/queryTreeData.action"
});
loader.on('beforeload', function(treeloader,node) {// 设置参数
treeloader.baseParams = {
id :node.id,
pid:node.parentNode==null ?'' :node.parentNode.id,
method : 'tree'
};
}, this);
}
if (!root) {
root = new Ext.tree.AsyncTreeNode({// 实例化 根节点root
id : '-1',
text : "委托人树"
});
}
if (!nav) {
nav = new Ext.tree.TreePanel({ // 实例化 树面板nav
title : "委托人树",
width : 300,
autoScroll : true,
animate : true,
id:'ptree',
height:550,
loader : loader,// 加入loader
root : root, // 加根节点进来
//checkModel:"cascade",
checkModel:'cascade',
listeners: {
'dblclick':function(node,e){
if(!node.isLeaf()){
return;
}
var nodeid=node.id;
var porids = nodeid.split(",");
var proids = node.parentNode.id.split(",");
var proname=node.parentNode.text;
Ext.getBody().mask("数据加载中.请稍等...","x-mask-loading");
Ext.Ajax.timeout=50000;
Ext.Ajax.request({
url: '../../marketrisk/relativerisk/findBeathByPor.action',
method:'post',
success: function(response, options){
Ext.getBody().unmask();
var str = Ext.util.JSON.decode(response.responseText);
var data=eval(str['treeTable']);
Ext.getCmp('pgrid').store.loadData(data);
grid.expandNodes(0);
},
failure : function(response, options) {
Ext.getBody().unmask();
alert("failure,come back:")
},
params:{
'proid': proids[0],
'porid': porids[0],
'proname':proname
}
});
}
},
enableDD : false
// 能拖动
});
nav.on("contextmenu", this.showTreeMenu);// 面板上添加右击菜单,调用方法
}
},
showTreeMenu : function(node, e) {
nodeSelected = node;
nodeSelected.select();// 选中的node
if (node.isLeaf()) { // 如果是叶子
leafMenu.showAt(e.getPoint());// 显示叶子
} else {
dirMenu.showAt(e.getPoint());// 显示目录
}
},
show : function() {
nav.render("trees"); // 加入div
nav.getRootNode().toggle();// 根节点触发查询
//nav.expandAll(); //将所有含有子节点的节点展开
}
}
}();
NavTree.init();// 初始化方法
NavTree.show();// 显示方法}
});
引用
后台构建json格式:
/**
* 将数组转换成json格式
*/
private JSONArray listToJson(List list,String p){
JSONArray jsonArray=new JSONArray();
Iterator iter=list.iterator();
NodeTree nodes=null;
while(iter.hasNext()){
nodes=(NodeTree)iter.next();
JSONObject obj=new JSONObject();
if("".equals(p)){
obj.put("id", nodes.getId()+",1,"+Math.random()*1999999999+Math.random()*134783498);
}else if("1".equals(p)){
obj.put("id",nodes.getId()+",2,"+Math.random()*1999679999+Math.random()*134873498);
}else if("2".equals(p)){
obj.put("id", nodes.getId()+",3,"+Math.random()*1999999999+Math.random()*1347983498);
}else if("3".equals(p)){
obj.put("id", nodes.getId()+",4,"+Math.random()*1999999999+Math.random()*1347783498);
}
obj.put("text",nodes.getText());
obj.put("leaf",0==nodes.getIs_leaf()? false : true);
jsonArray.add(obj);
}
return jsonArray;