`
小鑫。
  • 浏览: 134818 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ExtJs4-Ext.tab.Panel加右键关闭

 
阅读更多
效果图


Js代码
/**
 * 程序主入口
 */
Ext.onReady(function() {

	Ext.require(['Ext.panel.Panel', 'Ext.tab.Panel', 'Ext.tree.Panel',
			'Ext.data.TreeStore', 'Ext.container.Viewport',
			'Ext.ux.TabCloseMenu']);

	/**
	 * 上,panel.Panel
	 */
	this.topPanel = Ext.create('Ext.panel.Panel', {
				region : 'north',
				height : 55,
				contentEl : 'header'
			});
	/**
	 * 左,panel.Panel
	 */
	this.leftPanel = Ext.create('Ext.panel.Panel', {
				region : 'west',
				title : '导航栏',
				width : 230,
				layout : 'accordion',
				collapsible : true
			});
	/**
	 * 右,tab.Panel
	 */
	this.rightPanel = Ext.create('Ext.tab.Panel', {
				region : 'center',
				layout : 'fit',
				minTabWidth : 100,
				plugins : Ext.create('Ext.ux.TabCloseMenu', {
							closeTabText : '关闭当前页',
							closeOthersTabsText : '关闭其他页',
							closeAllTabsText : '关闭所有页'
						}),
				items : [{
							title : '首页'
						}]
			});

	/**
	 * 下,panel.Panel
	 */
	this.bottomPanle = Ext.create('Ext.panel.Panel', {
		region : 'south',
		height : 26,
		bbar : ['->', {
			xtype : 'combo',
			editable : false,
			labelAlign : 'right',
			emptyText : '更换皮肤',
			store : [['id_1', 'name_1'], ['id_2', 'name_2'], ['id_3', 'name_3']],
			queryMode : 'local',
			listeners : {
				'select' : function(combo, record, index) {
					if (combo.value != '') {
						alert(combo.value);
					}
				}
			}
		}]
	});

	/**
	 * 组建树
	 */
	var buildTree = function(json) {
		return Ext.create('Ext.tree.Panel', {
					rootVisible : false,
					border : false,
					store : Ext.create('Ext.data.TreeStore', {
								root : {
									expanded : true,
									children : json.children
								}
							}),
					listeners : {
						'itemclick' : function(view, record, item, index, e) {
							var id = record.get('id');
							var text = record.get('text');
							var leaf = record.get('leaf');
							if (leaf) {
								alert('id-' + id + ',text-' + text + ',leaf-'
										+ leaf);
							}
						},
						scope : this
					}
				});
	};
	/**
	 * 加载菜单树
	 */
	Ext.Ajax.request({
				url : 'data/Tree.txt',
				success : function(response) {
					var json = Ext.JSON.decode(response.responseText)
					Ext.each(json.data, function(el) {
								var panel = Ext.create('Ext.panel.Panel', {
											id : el.id,
											title : el.text,
											layout : 'fit'
										});
								panel.add(buildTree(el));
								leftPanel.add(panel);
							});
				},
				failure : function(request) {
					Ext.MessageBox.show({
								title : '操作提示',
								msg : "连接服务器失败",
								buttons : Ext.MessageBox.OK,
								icon : Ext.MessageBox.ERROR
							});
				},
				method : 'post'
			});
	/**
	 * Viewport
	 */
	Ext.create('Ext.container.Viewport', {
				layout : 'border',
				renderTo : Ext.getBody(),
				items : [this.topPanel, this.leftPanel, this.rightPanel,
						this.bottomPanle]
			});
});


后台返回数据
{success:true,data:[{id:'father_1',text:'功能列表',leaf:false,children:[{id:'UserView',text:'用户管理',leaf:true}]}]}
分享到:
评论
2 楼 Bactryki 2012-09-12  
        
1 楼 aason 2012-09-10  
正解,好用

相关推荐

    Extjs4.2 设置tabpanel当前活动页签的样式

    其中, `.x-tab-active` 是Extjs中当前活动页签的CSS类名, `.x-tab-wrap` 是标签页签的容器, `.x-tab-button` 是标签页签的按钮, `.x-tab-inner` 是标签页签的内部容器。 在上面的代码中,我们使用了CSS选择器来...

    extjs4.x tabpanel 动态加载panel和html例子

    Ext.create('Ext.tab.Panel', { renderTo: Ext.getBody(), // 将tabpanel渲染到body activeTab: 0, // 默认选中的tab layout: 'fit', // 使用fit布局,使得panel完全填充tabpanel items: [] }); ``` 2. **...

    ExtJS-3.4.0系列目录

    - **Ext.tab.Panel**:页签面板,用于展示多个页面内容,每个页面作为一个单独的Tab。 6. **Tree 组件** - **Ext.tree.Panel**:用于展示树形结构的数据,包含配置项和方法,如节点的添加、删除和操作。 7. **...

    ExtJs4_笔记.docx

    - **Ext.tab.Panel**:详细讲解了选项卡的创建和操作。 - **Ext.ListView**和**Ext.view.View**:数据视图的实现。 - **Ext.toolbar.Toolbar**、**Ext.toolbar.Paging**和**Ext.ux.statusbar.StatusBar**:工具栏、...

    extjs4.2.1 tabPanel刷新及关闭标签

    ### ExtJS 4.2.1 TabPanel 刷新与关闭标签功能详解 #### TabPanel 组件简介 在ExtJS框架中,`TabPanel`组件是一个非常实用且强大的UI控件,它允许用户在一个界面上组织多个相关的视图或面板,并通过标签页的形式...

    Extjs6.x插件,双击关闭选项卡(js源码)

    在EXTJS 6.x 中,`Ext.Tab.Panel` 是一个常用的组件,用于创建带有选项卡的布局,每个选项卡代表一个独立的视图或窗口。 在EXTJS 4.x 中,存在一种常见的用户交互模式,即双击选项卡来关闭该选项卡。然而,随着...

    extjs tab panel

    ExtJS Tab Panel是Ext JS库中的一个核心组件,它用于创建具有多个标签页的应用界面,类似于浏览器中的标签页。在Web应用中,Tab Panel经常被用来组织和展示大量的信息,让用户能够在一个页面上轻松切换不同的内容...

    extjs培训2011-12-17

    - `tabpanel`: `Ext.tab.Panel` — 选项卡面板。 #### 四、总结 ExtJS作为一款优秀的JavaScript框架,不仅提供了强大的UI组件,还支持多种布局管理方式、数据绑定机制以及事件处理等功能。通过深入学习其组件体系...

    extJs3升级extjs4方案

    在 ExtJS4 中,API 也发生了很大的变化,包括 tree、tab panel、grid、window、form、chart、data stores、border layout 等等。这些变化使得大型应用程序迁移变得非常困难。 在 ExtJS3 中,我们可以使用 Ext....

    extjs的的初步开发步骤

    这些组件通常继承自ExtJS的基础组件,例如`Ext.grid.Panel`,并根据需要添加额外的列配置、事件处理等。 总结,ExtJS的初步开发涉及了文件的组织、资源的引用、页面布局的设计以及自定义组件的创建。通过理解并实践...

    Ext组件描述,各个组件含义

    **2.11 Tab Panel (Ext.TabPanel)** - **xtype**: `tabpanel` - **功能描述**:Tab Panel 是一个包含多个选项卡的容器。 - **主要用途**:用于展示多个相关的数据集或功能模块,每个选项卡代表一个不同的页面。 **...

    ExtJs部署及使用方法

    plugins: new Ext.ux.TabCloseMenu() // 为Tab Panel的每个tab添加关闭菜单 }); // 添加新的Tab function addTab(id, tabTitle, targetUrl) { mainPanel.add({ id: id, title: tabTitle, iconCls: 'tabs', ...

    ExtJSWeb应用程序开发指南(第2版)

    5.4 Ext.tab.Panel页签 5.5 本章小结 第6章 常用工具类与函数 6.1 非常有用的Ext.core.Element 6.2 Ext常用函数 6.2.1 Ext.onReady() 6.2.2 Ext.get() 6.2.3 Ext.select() 6.2.4 Ext.query() ...

    老师整理的extjs学习笔记

    ExtJS 中的所有组件都继承自 `Ext.Component` 类,而 `Ext.Component` 又继承自 `Ext.util.Observable` 类。这意味着所有的组件都具有事件管理的能力。 **3.2 ExtJS 常用组件的继承关系及其管理** ExtJS 提供了...

    Extjs4 tab 基本选项卡及增删插入操作

    在这个“Extjs4 tab 基本选项卡及增删插入操作”的主题中,我们将深入探讨如何使用ExtJS 4来管理TabPanel的选项卡,包括创建、删除和插入操作。 首先,让我们了解TabPanel的基本配置和选项: 1. **创建TabPanel** ...

    extjs6.5快速开始.pdf

    - **Items数组**: 用于添加子组件到容器,如`[ { xtype: 'panel', title: 'Tab 1', iconCls: 'fa-home' }, { xtype: 'panel', title: 'Tab 2', iconCls: 'fa-user' } ]`。 - **子组件配置**: 每个子组件可以通过配置...

    Ext Js权威指南(.zip.001

    9.5.1 标签面板的构成及其运行流程:ext.tab.panel、ext.tab.bar与ext.tab.tab / 458 9.5.2 标签面板的配置项、属性、方法和事件 / 462 9.5.3 使用标签页 / 463 9.5.4 可重用的标签页 / 465 9.6 视图与选择模型...

    基于extjs的.NET3.5控件Coolite 1.0.0.34580(Preview预览版)

    <ext:Panel runat="server" Title="Tab 1" /> 55. Removed <ext:Tab> Control. Now any Ext.Net.PanelBase Component can be added to the TabPanel's .Items Collection. 56. XTemplate: renamed Text to ...

    ExtJS效果Tabs形式

    var tabPanel = Ext.create('Ext.tab.Panel', { renderTo: Ext.getBody(), items: [{ title: 'Tab 1', html: 'Content for Tab 1' }, { title: 'Tab 2', html: 'Content for Tab 2' }] }); ``` 这里,`...

Global site tag (gtag.js) - Google Analytics