一:TabPanel组件简介
二:简单代码示例
三:使用iframe作为tab的标签页内容
四:动态添加tabpanel的标签页
五:为tabpanel标签页添加右键菜单
方式一:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="Ext/resources/css/ext-all.css" rel="stylesheet" type="text/css" />
<script src="Ext/adapter/ext/ext-base.js" type="text/javascript"></script>
<script src="Ext/ext-all.js" type="text/javascript"></script>
<script src="Ext/ext-lang-zh_CN.js" type="text/javascript"></script>
<script type="text/javascript">
Ext.onReady(function() {
var mytable = new Ext.TabPanel({
renderTo: Ext.getBody(),
width: 200,
activeTab: 0,//激活的页数
frame: true, //出现渲染的边框
items: [
{
title:"tab1",
html:"tab1 content"
},
{
title:"tab2",
html:"tab2 content"
}
]
});
})
</script>
</head>
<body>
</body>
</html>
方式二:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<link href="Ext/resources/css/ext-all.css" rel="stylesheet" type="text/css" />
<script src="Ext/adapter/ext/ext-base.js" type="text/javascript"></script>
<script src="Ext/ext-all.js" type="text/javascript"></script>
<script src="Ext/ext-lang-zh_CN.js" type="text/javascript"></script>
<script type="text/javascript">
Ext.onReady(function() {
var tabs = new Ext.TabPanel({
renderTo: 'my-tabs',
activeTab: 0,
width:200,
items: [
{ contentEl: 'tab1', title: 'aaa' },
{ contentEl: 'tab2', title: 'bbb' }
]
});
});
</script>
</head>
<body>
<div id="my-tabs">
<div id="tab1" class="x-hide-display">A simple tab</div>
<div id="tab2" class="x-hide-display">Another one</div>
</div>
效果:
几个相关参数
1.tabPosition:“bottom”//选项卡的位置,枚举值bottom,top.默认为top(只有top的时候才能选项卡的滚动!)
2.tabTip:“提示”//必须先调用Ext.QuickTips.init();才有效果
1.tabPosition:“bottom”//选项卡的位置,枚举值bottom,top.默认为top(只有top的时候才能选项卡的滚动!)
2.tabTip:“提示”//必须先调用Ext.QuickTips.init();才有效果
3、经常我们有这么个情况,一个选项卡加载一个页面,这里我提供一种不是很好但是很稳定的简单方法(已经在项目中验证没有出现问题).
就是:使用iframe作为tab的标签页内容.
就是:使用iframe作为tab的标签页内容.
代码:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<link href="Ext/resources/css/ext-all.css" rel="stylesheet" type="text/css" />
<script src="Ext/adapter/ext/ext-base.js" type="text/javascript"></script>
<script src="Ext/ext-all.js" type="text/javascript"></script>
<script src="Ext/ext-lang-zh_CN.js" type="text/javascript"></script>
<script type="text/javascript">
Ext.onReady(function() {
var testTab = new Ext.TabPanel({
renderTo: Ext.getBody(),
width: "100%",
height:500,
activeTab: 0,
frame: true,
items: [
{
contentEl:"mainFrame",
tabTip:"fengjian",
title:"加载页面的标签页",
closable: true
}
]
});
});
</script>
</head>
<body style="margin:10px;">
<div>
<a href="javascript:void(0)" onclick="parent.frames['mainFrame'].location='http://www.cnblogs.com'">换成博客园</a>
<iframe id="mainFrame" name="mainFrame" src="http://www.baidu.com" frameborder="0" height="500px" width="100%" ></iframe>
</div>
</body>
</html>
点击添加新的页面:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="Ext/resources/css/ext-all.css" rel="stylesheet" type="text/css" />
<script src="Ext/adapter/ext/ext-base.js" type="text/javascript"></script>
<script src="Ext/ext-all.js" type="text/javascript"></script>
<script src="Ext/ext-lang-zh_CN.js" type="text/javascript"></script>
<script type="text/javascript">
Ext.onReady(function() {
var index = 0;
var tabsDemo = new Ext.TabPanel({
renderTo: Ext.getBody(),
activeTab: 0,
height: 700,
frame: true,
items: [
{
title: "autoLoad为html简单页面演示",
autoLoad: { url: "Tab1.aspx", scripts: true }
}
]
});
Ext.get("AddNewTab").on("click", function() {
tabsDemo.add({
title: "newtab" + index,
id: "newtab" + index,
html: "new tab" + index,
closable: true
});
tabsDemo.setActiveTab("newtab" + index);
index++;
//alert(index);
});
});
</script>
</head>
<body>
<a href="javascript:void(0)" id="AddNewTab">添加新页面</a>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
aaaaaaaaaaaaaa
</div>
</form>
</body>
</html>
为tabpanel标签页添加右键菜单
//几个参数说明
1.enableTabScroll:true//前面已经说过了
2. listeners:{“contextmenu”:function(参数1,参数2,参数3){.}}
//右键菜单事件,三个参数分别为当前tabpanel,当前标签页panel,事件对象e
每个标签页都有激活和去激活事件
activate和deactivate,他们的执行函数有个参数,就是当前标签页。
例子:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="Ext/resources/css/ext-all.css" rel="stylesheet" type="text/css" />
<script src="Ext/adapter/ext/ext-base.js" type="text/javascript"></script>
<script src="Ext/ext-all.js" type="text/javascript"></script>
<script src="Ext/ext-lang-zh_CN.js" type="text/javascript"></script>
<script type="text/javascript">
Ext.onReady(function() {
var index = 0;
function addTab() {
tabsDemo.add({
title: "tab" + index,
id: "newtab" + index,
html: "new tab " + index,
closable: true
});
tabsDemo.setActiveTab("newtab" + index);
index++;
}
var tabsDemo = new Ext.TabPanel({
renderTo: Ext.getBody(),
activeTab: 0,
height: 200,
enableTabScroll: true,
frame: true,//透明度
items: [{ //监听右键菜单 传递的参数:1.TabPanel 2.每一项的值 3.事件
title: "首页",
html: "first Page"
}],
listeners: {
"contextmenu": function(tdemo, myitem, e) {
menu = new Ext.menu.Menu([
{
text: "关闭当前页",
handler: function() {
tdemo.remove(myitem);
}
},
{
text: "关闭其他所有页",
handler: function() {
tdemo.items.each(function(item) {
if (item.closable && item != myitem) {
tdemo.remove(item);
}
});
}
},
{
text: "新建标签页",
handler: addTab
}
]);
menu.showAt(e.getPoint());
}
}
});
});
</script>
</head>
<body>
<a href="javascript:void(0)" id="AddNewTab">添加新页面</a>
</body>
</html>
效果图: