效果图
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}]}]}
分享到:
相关推荐
其中, `.x-tab-active` 是Extjs中当前活动页签的CSS类名, `.x-tab-wrap` 是标签页签的容器, `.x-tab-button` 是标签页签的按钮, `.x-tab-inner` 是标签页签的内部容器。 在上面的代码中,我们使用了CSS选择器来...
Ext.create('Ext.tab.Panel', { renderTo: Ext.getBody(), // 将tabpanel渲染到body activeTab: 0, // 默认选中的tab layout: 'fit', // 使用fit布局,使得panel完全填充tabpanel items: [] }); ``` 2. **...
- **Ext.tab.Panel**:页签面板,用于展示多个页面内容,每个页面作为一个单独的Tab。 6. **Tree 组件** - **Ext.tree.Panel**:用于展示树形结构的数据,包含配置项和方法,如节点的添加、删除和操作。 7. **...
- **Ext.tab.Panel**:详细讲解了选项卡的创建和操作。 - **Ext.ListView**和**Ext.view.View**:数据视图的实现。 - **Ext.toolbar.Toolbar**、**Ext.toolbar.Paging**和**Ext.ux.statusbar.StatusBar**:工具栏、...
### ExtJS 4.2.1 TabPanel 刷新与关闭标签功能详解 #### TabPanel 组件简介 在ExtJS框架中,`TabPanel`组件是一个非常实用且强大的UI控件,它允许用户在一个界面上组织多个相关的视图或面板,并通过标签页的形式...
在EXTJS 6.x 中,`Ext.Tab.Panel` 是一个常用的组件,用于创建带有选项卡的布局,每个选项卡代表一个独立的视图或窗口。 在EXTJS 4.x 中,存在一种常见的用户交互模式,即双击选项卡来关闭该选项卡。然而,随着...
ExtJS Tab Panel是Ext JS库中的一个核心组件,它用于创建具有多个标签页的应用界面,类似于浏览器中的标签页。在Web应用中,Tab Panel经常被用来组织和展示大量的信息,让用户能够在一个页面上轻松切换不同的内容...
- `tabpanel`: `Ext.tab.Panel` — 选项卡面板。 #### 四、总结 ExtJS作为一款优秀的JavaScript框架,不仅提供了强大的UI组件,还支持多种布局管理方式、数据绑定机制以及事件处理等功能。通过深入学习其组件体系...
在 ExtJS4 中,API 也发生了很大的变化,包括 tree、tab panel、grid、window、form、chart、data stores、border layout 等等。这些变化使得大型应用程序迁移变得非常困难。 在 ExtJS3 中,我们可以使用 Ext....
这些组件通常继承自ExtJS的基础组件,例如`Ext.grid.Panel`,并根据需要添加额外的列配置、事件处理等。 总结,ExtJS的初步开发涉及了文件的组织、资源的引用、页面布局的设计以及自定义组件的创建。通过理解并实践...
**2.11 Tab Panel (Ext.TabPanel)** - **xtype**: `tabpanel` - **功能描述**:Tab Panel 是一个包含多个选项卡的容器。 - **主要用途**:用于展示多个相关的数据集或功能模块,每个选项卡代表一个不同的页面。 **...
plugins: new Ext.ux.TabCloseMenu() // 为Tab Panel的每个tab添加关闭菜单 }); // 添加新的Tab function addTab(id, tabTitle, targetUrl) { mainPanel.add({ id: id, title: tabTitle, iconCls: 'tabs', ...
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 中的所有组件都继承自 `Ext.Component` 类,而 `Ext.Component` 又继承自 `Ext.util.Observable` 类。这意味着所有的组件都具有事件管理的能力。 **3.2 ExtJS 常用组件的继承关系及其管理** ExtJS 提供了...
<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 ...
在这个“Extjs4 tab 基本选项卡及增删插入操作”的主题中,我们将深入探讨如何使用ExtJS 4来管理TabPanel的选项卡,包括创建、删除和插入操作。 首先,让我们了解TabPanel的基本配置和选项: 1. **创建TabPanel** ...
- **Items数组**: 用于添加子组件到容器,如`[ { xtype: 'panel', title: 'Tab 1', iconCls: 'fa-home' }, { xtype: 'panel', title: 'Tab 2', iconCls: 'fa-user' } ]`。 - **子组件配置**: 每个子组件可以通过配置...
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 视图与选择模型...
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' }] }); ``` 这里,`...