<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Advanced Tabs</title>
<link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />
<!-- LIBS -->
<script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
<!-- ENDLIBS -->
<script type="text/javascript" src="../../ext-all.js"></script>
<!--<link rel="stylesheet" type="text/css" href="tabs-example.css" />-->
<script type="text/javascript" >
//src="../ux/TabCloseMenu.js"
Ext.ux.TabCloseMenu = function(){
var tabs, menu, ctxItem;
this.init = function(tp){
tabs = tp;
tabs.on('contextmenu', onContextMenu);
};
function onContextMenu(ts, item, e){
if(!menu){ // create context menu on first right click
menu = new Ext.menu.Menu({
items: [{
id: tabs.id + '-close',
text: 'Close Tab',
handler : function(){
tabs.remove(ctxItem);
}
},{
id: tabs.id + '-close-others',
text: 'Close Other Tabs',
handler : function(){
tabs.items.each(function(item){
if(item.closable && item != ctxItem){
tabs.remove(item);
}
});
}
}]});
}
ctxItem = item;
var items = menu.items;
items.get(tabs.id + '-close').setDisabled(!item.closable);
var disableOthers = true;
tabs.items.each(function(){
if(this != item && this.closable){
disableOthers = false;
return false;
}
});
items.get(tabs.id + '-close-others').setDisabled(disableOthers);
e.stopEvent();
menu.showAt(e.getPoint());
}
};
Ext.preg('tabclosemenu', Ext.ux.TabCloseMenu);
</script>
<script type="text/javascript" >
Ext.onReady(function(){
var tabs = new Ext.TabPanel({
renderTo:'tabs',
resizeTabs:true, // turn on tab resizing
minTabWidth: 115,
tabWidth:135,
enableTabScroll:true,
width:600,
height:250,
defaults: {autoScroll:true},
plugins: new Ext.ux.TabCloseMenu()
});
// tab generation code
var index = 0;
while(index < 7){
addTab();
}
function addTab(){
tabs.add({
title: 'New Tab ' + (++index),
iconCls: 'tabs',
html: 'Tab Body ' + (index) + '<br/><br/>',
//+ Ext.example.bogusMarkup,
closable:true
}).show();
}
new Ext.Button({
text: 'Add Tab',
handler: addTab,
iconCls:'new-tab'
}).render(document.body, 'tabs');
});
</script>
<!-- Common Styles for the examples -->
<link rel="stylesheet" type="text/css" href="../shared/examples.css" />
</head>
<body>
<!--<script type="text/javascript" src="../shared/examples.js"></script> EXAMPLES -->
<div id="tabs" style="margin:15px 0;"></div>
</body>
</html>
分享到:
相关推荐
### ExtJS 4.2.1 TabPanel 刷新与关闭标签功能详解 #### TabPanel 组件简介 在ExtJS框架中,`TabPanel`组件是一个非常实用且强大的UI控件,它允许用户在一个界面上组织多个相关的视图或面板,并通过标签页的形式...
在EXTJS 4.x框架中,`tabpanel`是用于创建多标签界面的组件,它可以方便地组织和切换多个视图。动态加载panel和HTML到tabpanel是提高应用性能和用户体验的有效方式,因为它允许按需加载内容,减少初始页面加载时间。...
在上面的例子中,面板头部被添加了四个工具栏按钮,每个按钮都有自己的功能。其中"close"工具配置了一个处理器,当点击这个工具按钮时会触发一个警告框,告诉用户这是一个关闭按钮的事件。 除了Ext.Panel,ExtJs还...
6. **`panel`:** 面板组件,是ExtJS中最常用的容器之一,可以包含多个子组件,通过`Ext.Panel`类实现。 7. **`tabpanel`:** 选项卡面板组件,用于实现选项卡界面,通过`Ext.TabPanel`类实现。 8. **`treepanel`:**...
### Ext中的tabpanel关闭后再打开不显示的问题 在Ext框架中,`TabPanel`是一个非常重要的组件,用于实现页面中的多标签页功能。然而,在实际应用过程中可能会遇到一个常见问题:当某个标签页被关闭后,如果尝试重新...
在EXT JS这个强大的JavaScript库中,`TabPanel`是一个核心组件,用于实现多标签页界面。本篇文章将深入探讨如何在EXT JS的`TabPanel`中实现动态页面加载,这在构建可扩展且高效的Web应用时非常关键。通过动态加载,...
- **`toolbar` (Ext.Toolbar)**: 工具栏组件,通常放置在窗口顶部或底部,包含一系列常用的操作按钮。 - **`tbbutton` (Ext.Toolbar.Button)**: 工具栏按钮组件,是工具栏内的单个按钮。 - **`tbfill` (Ext.Toolbar....
**2.11 Tab Panel (Ext.TabPanel)** - **xtype**: `tabpanel` - **功能描述**:Tab Panel 是一个包含多个选项卡的容器。 - **主要用途**:用于展示多个相关的数据集或功能模块,每个选项卡代表一个不同的页面。 **...
在ExtJs中,GridPanel是用于展示数据的常用组件,它可以提供丰富的功能,如排序、分页、筛选等。在实际应用中,我们经常需要监听用户的交互行为,比如双击行进行进一步的操作。本篇文章将深入讲解如何在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 ...
然而,仅仅阻止`beforeremove`事件并不足以实现关闭确认对话框,因为TabPanel的Panel还有一个`beforeclose`事件,这是在Panel的关闭操作开始之前触发的。通常,我们会在`beforeclose`事件中弹出确认对话框,并根据...
var panel = new Ext.TabPanel({ renderTo: Ext.getBody(), width: 300, height: 200, activeTab: 0, items: [ new Ext.Panel({ title: "面板1", height: 30, html: '面板1内容!' }), new Ext.Panel({ ...
- **`Class`**: `Ext.TabPanel` - **描述**: 选项卡面板,用于组织多个页面。 8. **`treepanel`:** - **`xtype`**: `treepanel` - **`Class`**: `Ext.tree.TreePanel` - **描述**: 树形结构的面板,用于展示...
var tabPanel = Ext.create('Ext.tab.Panel', { width: 600, height: 300, items: [ { title: 'Value Table', layout: 'fit', items: Ext.create('MyApp.view.MyGrid') } ] }).render(Ext.getBody()); })...
- **Ext.TabPanel篇**:`Ext.TabPanel`是一个容器组件,用于创建带有标签页的用户界面,可以在各个标签页之间切换显示不同的内容。 - **Function扩展篇**:这部分内容涉及对JavaScript原生函数的扩展,比如增加...
接下来将详细介绍文档中提到的几个核心概念,包括`Ext.MessageBox`、`Ext.Panel`、`Ext.Window`、`Ext.FormPanel`、`Ext.TabPanel`、`Ext.XTemplate`和`Ext.TreePanel`以及如何在Extjs中实现主题(换肤)功能。...
**4.3 Ext.TabPanel 应用例子** `Ext.TabPanel` 是一个选项卡面板组件,用于显示多个可切换的面板。下面是一个简单的 `Ext.TabPanel` 示例: ```javascript new Ext.TabPanel({ width: 400, height: 200, ...
- `tabpanel`: `Ext.TabPanel` - `treepanel`: `Ext.tree.TreePanel` - `viewport`: `Ext.ViewPort` - `window`: `Ext.Window` - `toolbarcomponents`: `paging`, `toolbar`, `tbbutton`, `tbfill`, `tbitem`, `...
这个"Ext经典例子整合 快速上手必看"的资源包提供了多个EXTJS组件的示例,帮助开发者快速掌握EXTJS的核心概念和用法。以下是对每个示例及其相关知识点的详细说明: 1. **Tree**: EXTJS中的TreePanel是用于展示...