Ext TREE 除node外再绑定参数

有时候树需要用多个参数去查询,光是一个node可不够用啊,以下为增加参数的方法

1函数方式

 

treeloader.on("beforeload", function(treeLoader, node) { treeLoader.baseParams.node_id = node.id; treeLoader.baseParams.node_text = node.text; }, this);

 

2构造方式

ClassifyTree = Ext.extend(Ext.tree.TreePanel,{ menu : null, currentNode : null, insertWin : null, updateWin : null, loader : new Ext.tree.TreeLoader({ dataUrl : 'classifyExtTree.action' }), constructor:function(){ this.insertWin = new InsertModuleWindow(); this.updateWin = new UpdateModuleWindow(); this.loader.processResponse = function(response, node, callback) { var json = response.responseText; try { var json = eval("(" + json + ")"); node.beginUpdate(); // 从json中获得json数组,这里的key与Struts2返回的json对象中的key对应 var o = json["items"]; for (var i = 0, len = o.length; i < len; i++) { var n = this.createNode(o[i]); if (n) { node.appendChild(n); } } node.endUpdate(); if (typeof callback == "function") { callback(this, node); } } catch (e) { this.handleFailure(response); } };// 支持自定义数组名-结束 this.menu = new Ext.menu.Menu({ items : [{ text : "添加", handler : function() { this.insertWin.show(); //这里也load一下; this.insertWin.load(new Ext.data.Record({ categoryId:parentId, url:url })); //this.insertWin.loadParent(this.menu["crrentNode"].id); }, scope : this }, { text : "修改", handler : function() { this.updateWin.show(); try { console.debug("ITEM /ncurrentNode:" + this.currentNode); this.updateWin.load(this.currentNode.attributes); } catch (_err) { Ext.Msg.alert("系统提示", "Error<br/>" + _err); this.updateWin.close(); } }, scope : this }, { text : "删除", handler : this.onDeleteNode, scope : this }] }); ClassifyTree.superclass.constructor.call(this, { // el : 'myTree', // 渲染 renderTo : 'grid', width : 300, height : 500, useArrows : true, autoScroll : true, animate : true, enableDD : true, containerScroll : true, listeners : { "contextmenu" : { fn : this.onContextMenu, scope : this } }, bbar:[{ id:'refresh' }], // 自动载入数据 loader : this.loader, root : { // 节点类型,异步 nodeType : 'async', iconCls : 'icon-male', text : title+"分类", id : parentId } }); // 展开根:两个参数,是否递归展开和动画效果boolean this.getRootNode().expand(); this.insertWin.on("submit",this.onInsertNode,this); this.updateWin.on("submit",this.onUpdateNode,this); this.on("beforeload", function( node) { this.loader.baseParams.node_id = node.id; //成功!this.loader.baseParams.parentId = node.parentNode.id; }, this); }

 

现在,想加多少查询都没有问题了

 

 

你可能感兴趣的:(Ext TREE 除node外再绑定参数)