了解添加tab的函数
这里设置为自动添加,菜单是从后台获取的数据,前台进行双击的时候,添加tab页
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Ext.define('MVC.controller.MainController', {
extend: 'Ext.app.Controller',
stores:['MenuStore','NewsStore'],
models:['MenuModel','NewsModel'],
views:['Viewport'],
init: function() {
console.log('测试controller文件是否找到!');
this.control({
'menulist':{
itemdblclick: this.openTab
}
});
},
openTab:function(view, record, item, index, e){
console.log('测试双击是否执行!'+record['data']['text']);
var pnCenter = Ext.getCmp('content_panel');
var tabId = "tab-" + record.raw.id;
var tabTitle = record.raw.text;
var url = record.raw.url;
var newTab = Ext.getCmp(tabId);
Ext.log("record.raw.url:"+url);
if (!newTab) {
newTab = pnCenter.add(new Ext.Panel({
id: tabId,
title: tabTitle,
autoScroll: true,
iconCls: 'tabIconCss',
layout: 'fit', //layout一定要是fit,不然显示grid会有问题。
border: false,
closable: true,
fitToFrame:true,
items: [Ext.create('MVC.view.'+url)]
}));
pnCenter.setActiveTab(newTab);
}else { //如果tab中存在,那么就直接将节点指向这个页面
pnCenter.setActiveTab(newTab);
}
}
});注意:
Ext.getCmp('content_panel');content_panel是id值,代表的是内容页的id号,执行之前表示已经存在;
Ext.create('MVC.view.'+url)中'MVC.view.'+url代表的是命名空间,执行之后就说明之前尚未存在;
Right.js tab要显示的位置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Ext.define('MVC.view.main.Right', {
extend : 'Ext.tab.Panel',
initComponent : function() {
Ext.apply(this, {
id : 'content_panel',
region : 'center',
defaults : {
autoScroll : true,
bodyPadding : 10
},
activeTab : 0,
border : false,
// plain: true,
items : [{
id : 'HomePage',
title : '首页',
iconCls : 'home',
layout : 'fit'
}]
});
this.callParent(arguments);
}
});