extJS4.2.0 tabPanel学习(三)
了解添加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); } }); |
作者:少帅
出处:少帅的博客--http://www.cnblogs.com/wang3680
您的支持是对博主最大的鼓励,感谢您的认真阅读。
本文版权归作者所有,欢迎转载,但请保留该声明。
支付宝 微信