了解添加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);
}
});
|