首页 > 我的ExtJS学习之路 ——4

我的ExtJS学习之路 ——4

项目基本架子出来,然后就该考虑将封装好的gridpanel 和 tabpanel关联起来

既 点击树的叶子节点,将 gridpanel 展现在 tabpanel中

怎么关联呢?

 

【在之前的基础上的,重复的代码就不贴出来了】

 

我改变了 模拟数据的形式,注意id的变化,和上期的不一样

[

{id:'Ext.cjl.TestGrid_testgrid',text:'菜单-1',leaf:true}

]

id用下划线隔开,前面是封装好的表格,后面是 表格在项目中唯一的id编号

 

然后在 index.js,添加树节点的点击事件

var menus= new Ext.tree.TreePanel({ 

id:'menus',

loader: new Ext.tree.TreeLoader({

dataUrl: 'temp/tree.txt'

}),

title:'菜单',

rootVisible:false,

region:'west',

split:true,

border:true,

collapsible:true,

listeners : {

'click': function(node, event) {

clickNode(node,event);

}

}

});

 

项目使用的统一的点击节点的方法,clickNode,在index.html中的定义

function clickNode(node,event){ 

event.stopEvent();

var tempId=node.id.split('_');

var entityClass=tempId[0];

var entityId=tempId[1];

//叶子节点

if(node.leaf==true){

var tabs=Ext.getCmp('centertabpanel');

var n = tabs.getItem(entityId);

var tempGrid=null;

var object = 'new ' + entityClass+'();';

if(!n){

n = tabs.add(eval(object));

tabs.activate(n);

}

tabs.setActiveTab(n);

}

//

else{

node.toggle();

}

}

获取节点对应的class 和 id,如果tabpanel中有,获取焦点,显示出来;不存在,new新的,获取焦点

 

然后之前的封装好的,表格gridpanel,就可以添加发的 tabpanel中了。









转载于:https://www.cnblogs.com/chenjinlong/archive/2012/02/24/2366181.html

更多相关: