转自:https://blog.csdn.net/mezhaha/article/details/78878894
本文导读:TabPanel继承于Ext.Panel,Ext.TabPanel就是有选项卡的Panel,可以在选项卡之间切换。它是多个不同内容的容器,任意组件直接使用add()函数便可添加到Ext.TabPanel中。通过activeTab指定激活哪个面板,索引从0开始。下面介绍extjs中tabPanel的用法

一、tabPanel主要配置项

activeTab

初始激活的tab,索引或者id值,默认为none
 
autoTabs

是否自动将带有'x-tab'样式类的div转成tabs添加到TabPanel中,默认为false。当该配置项设为true时,需要设deferredRender为false,还必须使用applyTo。

deferredRender

是否延迟渲染,默认为true。

autoTabSelector

默认为'div.x-tab'。
 
resizeTabs

是否可以改变tab的尺寸,默认为false。

minTabWidth

tab的最小宽度,默认为30。

tabWidth

每个新增加的tab宽度,默认为120。

tabTip

tab的提示信息
 
tabPosition

tab位置,可选值有top、bottom,默认为top

enableTabScroll

是否允许Tab溢出时可以滚动,默认为false。

closable

tab是否可关闭,默认为false
 
scrollDuration

每次的滚动时长,默认为0.35毫秒。

scrollIncrement

每次的滚动步长,默认为100像素。

wheelIncrement

每次鼠标滑轮的滚动步长,默认为20像素。

二、tabPanel主要方法

getActiveTab()

获取当前活动的tab

get( String/Number key )

根据组件id或者索引获取组件

getItem(String id)

根据tab id获取tab

setActiveTab( String/Number item )

设置某个面板为活动面板

remove( Component/String component, [Boolean autoDestroy] )

移除某个面板

removeAll( [Boolean autoDestroy] )

移除所有面板

三、Tab的正文内容获取方式

1、基本方式 : 通过定义html和items的方式。

 
JScript 代码   复制

Ext.onReady(function(){
var config = {
height:150,
width:300,
activeTab:0, //默认激活第一个tab页
animScroll:true, //使用动画滚动效果
enableTabScroll:true, //tab标签过宽时自动显示滚动条
renderTo:'panel',
//通过items将标签页以子面板的方式加入TabPanel
items:[
{title:'tab标签页1',html:'tab标签页1内容'},
{title:'tab标签页2',html:'tab标签页2内容'},
{title:'tab标签页3',html:'tab标签页3内容'},
{title:'tab标签页4',html:'tab标签页4内容'},
{title:'tab标签页5',html:'tab标签页5内容'}
]
}

new Ext.TabPanel(config);
});

2.读取其他html的信息 : 通过设置contentEl就可以获取其他html的信息为当前tab正文。

 
HTML 代码   复制

<script>
Ext.onReady(function(){
var config = {
height:50,
width:300,
autoTabs:true, //自动扫描页面中的有效div然后转换为标签
deferredRender:false, //不进行延时渲染
//deferredRender:true,
activeTab:0, //默认激活第一个标签
animScroll:true, //使用动画滚动效果
enableTabScroll:true, //tab标签超宽时自动出现滚动条
applyTo:'panel' //此处必须使用applayTo定位
}

new Ext.TabPanel(config);
});
</script>

<div id="panel">
<div class="x-tab" title="tab标签页1">tab标签页1内容</div>
<div class="x-tab" title="tab标签页2">tab标签页2内容</div>
<div class="x-tab" title="tab标签页3">tab标签页3内容</div>
<div class="x-tab" title="tab标签页4">tab标签页4内容</div>
<div class="x-tab" title="tab标签页5">tab标签页5内容</div>
</div>


<div class="x-tab" title="tab标签页6">无效tab标签页6内容</div>

3、读取服务端数据:通过定义autoLoad异步方式获取服务端数据。

4、动态添加标签页

 
JScript 代码   复制

Ext.onReady(function(){
var config = {
height:150,
width:300,
activeTab:0, //默认激活第一个tab页
animScroll:true, //使用动画滚动效果
enableTabScroll:true, //tab标签超宽时自动出现滚动按钮
renderTo:'panel',
items:[
{title:'tab标签页1',html:'tab标签页1内容'}
],
//自动添加标签的按钮
buttons:[
{
text:'添加标签页',
handler:addTabPage //处理函数
}
]
}

var tabPanel = new Ext.TabPanel(config);

//添加tab页
function addTabPage()
{
var index = tabPanel.items.length + 1;

//创建新标签页
var tabPage = tabPanel.add({
title:'tab标签页' + index,
html:'tab标签页' + index + '内容',
closable:true //允许关闭该标签页
});

//设置当前显示的标签页
tabPanel.setActiveTab(tabPage);
}
});

四、tabPanel完整实例

 
JScript 代码   复制

function myRender(p){
Ext.Msg.alert("提示",p.title+"渲染成功") ;
}
Ext.onReady(function(){
var i = 4 ;
//注意:每个Tab标签只渲染一次
var tabs = new Ext.TabPanel({
renderTo: Ext.getBody(),//绑定在body标签上
activeTab: 0,//初始显示第几个Tab页
deferredRender: false,//是否在显示每个标签的时候再渲染标签中的内容.默认true
tabPosition: 'top',//表示TabPanel头显示的位置,只有两个值top和bottom.默认是top.
enableTabScroll: true,//当Tab标签过多时,出现滚动条
items: [{//Tab的个数
title: 'Tab 1',
html: 'A simple tab',
listeners: {render:function(){//为每个Tab标签添加监听器.当标签渲染时触发
Ext.Msg.alert("Tab 1","渲染Tab 1成功") ;
}}
},{
title: 'Tab 2',
html: 'Another one',
listeners: {render: myRender}
},{
title: 'Tab 3',
autoLoad: 'test.html',
closable: true,
listeners: {render: myRender}
}],
bbar:[{//添加一个底部工具栏,并且在该工具栏上添加两个按钮
text:'添加标签',
handler:function(){//添按钮被点击时触发这个匿名函数(注意:该属性在button中能查到).
var id = i ;
tabs.add({//添加一个Tab标签
id: id,
title:'Tab '+i,
closable: true
}) ;
i=i+1;
tabs.setActiveTab(id) ;//当id为"id"的Tab标签显示(变为活动标签).
}
},{
text:'删除标签',
handler: function(){
var t = tabs.getActiveTab();//获得当前活动标签的引用
if(t.closable){
tabs.remove(t);//删除标签
}else{
Ext.Msg.alert("提示","该标签不能关闭") ;
}
}
}]
}); //把TabPanel组件充满整个body容器.
new Ext.Viewport({
layout: 'fit',
items: tabs
});
});

15.extjs tabPanel的用法的更多相关文章

  1. Extjs TabPanel 选项卡延迟加载

    Extjs TabPanel 选项卡延迟加载 说明: Ext中用到tabpanel选项卡控件, 选项卡页签默认是延迟加载的, 当用户手工切换到某页签下时该页签才会加载, 在页签没有加载前, 用户对该页 ...

  2. extjs grid renderer用法

    extjs grid renderer用法 摘自:http://www.cnblogs.com/ljian/archive/2011/10/27/2226959.html var cm = new E ...

  3. 简易数据分析 15 | Web Scraper 高级用法——CSS 选择器的使用

    这是简易数据分析系列的第 15 篇文章. 年末事情比较忙,很久不更新了,后台一直有读者催更,我看了一些读者给我的私信,发现一些通用的问题,所以单独写篇文章,介绍一些 Web Scraper 的进阶用法 ...

  4. Linux find命令实例教程 15个find命令用法

    除了在一个目录结构下查找文件这种基本的操作,你还可以用find命令实现一些实用的操作,使你的命令行之旅更加简易.本文将介绍15种无论是于新手还是老鸟都非常有用的Linux find命令.首先,在你的h ...

  5. ExtJS numberfield textfield用法

    textfield的用法示例 var formCmp = Ext.create("Ext.form.Panel", { title: "NumberField用法示例&q ...

  6. extjs grid renderer用法【转载】

    今天在做项目时,需要在列表中的某列添加一个超链接,首先要取得当前选中行的数据,判断数据类型,然后链接到不同的页面,研究下.发现ExtJs提供了一个很强的方法如下: var cm = new Ext.g ...

  7. Extjs Store 的用法详解

    Ext.data.Store的基本用法 在使用之前,首先要创建一个Ext.data.Store的实例,如下面的代码所示.       每个store最少需要两个组件的支持,分别是proxy和reade ...

  8. ExtJS4.1 ExtJS TabPanel 双击标签关闭该页

    /*总觉得 TabPanel 生成的那个关闭按钮太小关闭的时候不太顺手 感觉不方便 所以想双击关闭tab方便些于是在网上找到下面的代码 URL:http://atian25.iteye.com/blo ...

  9. 72. js EXTJS grid renderer用法

    转自:https://blog.csdn.net/shancunxiaoyazhi/article/details/22156083 renderer : Function (可选的)该函数用于加工单 ...

随机推荐

  1. Spider-Python爬虫之聚焦爬虫与通用爬虫的区别

    为什么要学习爬虫? 学习爬虫,可以私人订制一个搜索引擎. 大数据时代,要进行数据分析,首先要有数据源. 对于很多SEO从业者来说,从而可以更好地进行搜索引擎优化. 什么是网络爬虫? 模拟客户端发送网络 ...

  2. 【BZOJ 1202】 [HNOI2005]狡猾的商人 (加权并查集)

    题链:http://www.lydsy.com/JudgeOnline/problem.php?id=1202 Description 刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪 ...

  3. 商业研究(21):活力蛙,足疗O2O,曾经的“中国上门足疗领先品牌”

    友情提示:商业研究系列文章,只探讨项目和相关项目的商业本身,不针对任何人和任何组织!!! 2015年,在京东-东家 股权众筹平台,参与投资了足疗O2O项目,活力蛙.     后来由于,股市大跌和资本寒 ...

  4. 解决EF 4.0 中数据缓存机制

    EF4.0默认开启缓存机制,如果想要禁用缓存机制的话,则须加上一句话:_db.CreateObjectSet().MergeOption = MergeOption.OverwriteChanges; ...

  5. 【Codeforces 1031C】Cram Time

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 如果找到最大的n使得1+2+...+n<=a+b 然后第一天输出1,2.3,4....t1 这里1+2+..+t1<=a 这还远远 ...

  6. JQuery常用的案例

    1.给导航栏添加鼠标移上去的时候变换背景颜色的方法. $(function () { $(".nav li").mouseover(function () { $(this).cs ...

  7. openstack -> openinfra

    https://www.openstack.org/assets/software/projectmap/openstack-map.pdf

  8. 2017icpc 西安 XOR

    XOR Consider an array AAA with n elements . Each of its element is A[i]A[i]A[i] (1≤i≤n)(1 \le i \le ...

  9. noip模拟赛 Nephren Ruq Insania

    题目背景 大样例下发链接: https://pan.baidu.com/s/1nuVpRS1 密码: sfxg 注意:本题大样例4的输出文件修改为 https://pan.baidu.com/s/1b ...

  10. Django的static和media

    2013-09-09 18:13:57|          最近用到Django的静态文件,关于static和media,配置了很多次,终于可以用了.        首先是static,在'site/ ...