Ext4如何判断tabpanel是否已经存在某个tab

[Ext JS3.9] 标签面板(TabPanel )介绍与开发 标签面板是RIA 类应用使用较多的组件, 因为其可以显示的内容比较多。 阅读详情

Ext4如何判断tabpanel是否已经存在某个tab

  ext4如何判断tabpanel中是否已经存在某个tab,如果存在就激活这个tab,否则重新打开tab。

 

  原理:在tabpanel添加tab的时候增加tab的id配置,然后通过Ext.getCmp获取控件,如果不存在则添加此tab,否则调用tabpanel的setActiveTab方法激活此tab。

 

  示例代码,点击左边菜单treepanel的叶子节点时,在右边的tabpanel中动态添加tab,在添加前判断是否已经打开过tab,打开则激活此tab,否则添加新tab项。

需要注意:treepanel的叶子节点id需要唯一,要不可能出错。

Ext4如何判断tabpanel是否已经存在某个tab

-收缩 HTML代码   运行代码   [如果运行无效果,请自行将源代码保存为html文件运行]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ext4如何判断tabpanel是否已经存在某个tab </title>
<link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />
<link rel="stylesheet" type="text/css" href="../shared/example.css" />
<script type="text/javascript" src="../../ext-all.js"> </script>
<script type="text/javascript">
     var tab =  new Ext.TabPanel({
        region:  'center',
        deferredRender:  false,
        activeTab: 0,
        resizeTabs:  true,  // turn on tab resizing
        minTabWidth: 115,
        tabWidth: 135,
        enableTabScroll:  true
    });
    Ext.onReady( function () {
         var viewport =  new Ext.Viewport({
            width: 1024,
            height: 620,
            layout:  'border',  // border布局
            items: [{
                region:  'north',  // 必须用region参数指定位置
                xtype:  'panel',
                height: 50,
                frame:  true,
                split:  false,  // split属性是设置除了center区域外是否可调节大小
                html:  '欢迎登录!',
                margins:  '0 0 0 0'
                 // title: 'South Region is collapsible', //要想设置折叠必须设置title
                 // collapsible: true
            }, {
                region:  'south',  // 必须用region参数指定位置
                xtype:  'panel',
                height: 50,
                frame:  true,
                split:  false,  // split属性是设置除了center区域外是否可调节大小
                html:  '欢迎登录!',
                margins:  '0 0 0 0'
                 // title: 'South Region is collapsible', //要想设置折叠必须设置title
                 // collapsible: true
            }, {
                title:  'West Region is collapsible',
                region:  'west',
                xtype:  'panel',
                width: 200,
                collapsible:  true,  // 设置可折叠
                id:  'west-region-container',
                layout:  'fit',
                margins:  '0 0 0 0',
                title:  '管理系统',
                items: [{
                    xtype:  'treepanel',
                    title:  '系统菜单',
                    expanded:  true,
                    listeners: { itemclick:  function (view, record, item, index, e, eOpts) {
                         if (record.get( 'leaf')) {  //叶子节点
                             var id = record.get( 'id');
                             if (Ext.getCmp(id)) tab.setActiveTab(id);
                             else{ tab.add({ title: record.get( 'text'), html:  'tab内容--' + record.get( 'text'), closable:  true, id: id });tab.setActiveTab(id);  /*激活新的选项卡*/}
                        }
                    }
                    },
                    containerScroll:  true,
                    root: {
                        text:  '系统管理',
                        children: [{
                            text:  '行政区划管理',
                            id:  'c1',
                            expanded:  true,
                            children: [{
                                text:  '行政区划管理1',
                                id:  'c11',
                                leaf:  true
                            }, {
                                text:  '行政区划管理2',
                                id:  'c12',
                                leaf:  true
                            }]
                             /*
                            * href:"Grid.html",//节点的链接地址
                            * hrefTarget:"tab"//打开节点链接地址默认为blank,可以设置为iframe名称id,则在iframe中打开
                            */

                        }, {
                            text:  '部门管理',
                            id:  'c2',
                            expanded:  true,
                            children: [{
                                text:  '部门管理1',
                                id:  'c21',
                                leaf:  true
                            }, {
                                text:  '部门管理2',
                                id:  'c22',
                                leaf:  true
                            }]
                        }, {
                            text:  '用户管理',
                            expanded:  true,
                            id:  'c3',
                            children: [{
                                text:  '用户管理1',
                                id:  'c31',
                                leaf:  true
                            }, {
                                text:  '用户管理2',
                                id:  'c32',
                                leaf:  true
                            }]
                        }, {
                            text:  '菜单管理',
                            expanded:  true,
                            id:  'c4',
                            children: [{
                                text:  '菜单管理1',
                                id:  'c41',
                                leaf:  true
                            }, {
                                text:  '菜单管理2',
                                id:  'c42',
                                leaf:  true
                            }]
                        }]
                    },
                    viewConfig: {
                }
            }],
            dockedItems: [{
                xtype:  'toolbar',
                dock:  'bottom',
                items: [{
                    text:  "全部折叠",
                    listeners: {
                         "click": {
                            fn:  function () {
                                 this.collapseAll();
                            },
                            scope:  this
                        }
                    }
                }]
            }]
        }, tab // 初始标签页
        ]
    });
});
</script>
</head>
<body>
<div id='grid'> </div>
</body>
</html>
多臂老虎机——入门强化学习 多臂老虎机(Multi-Armed Bandit,MAB)问题是强化学习的经典入门例子,也是理解探索与利用(exploration-exploitation)平衡的重要案例。 阅读详情

相关推荐

antdv-<a-form>的使用

是 Ant Design Vue 中用于创建表单的组件,提供了一种结构化的方式来收集用户输入。它支持多种布局、验证、数据绑定等功能,非常适合用于处理用户输入和提交数据。

2302_81312344的博客 2617

判断extjs内的tabs的状态。

判断windowif(!win.rendered){alert("noreader")}elseif(win.hidden){alert("hidden")}else{alert("show")} 转载于:https://www.cnblogs.com/biandande/archive/2011/08/28/2156191.html...

weixin_30517001的博客 128

从农田到城市:如何利用NDVI和缨帽变换提升遥感图像分类精度?

本文深入探讨了如何利用NDVI(归一化差值植被指数)和缨帽变换(Tasseled Cap Transformation)两大关键技术,有效提升从农田到城市等复杂场景的遥感图像分类精度。文章通过剖析地物光谱特征,对比了原始波段与衍生特征的优劣,并提供了在ENVI、ArcGIS及Python环境中的具体操作指南与实战策略,旨在帮助从业者构建更鲁棒的特征工程流程,从而解决地物混淆、边界模糊等常见分类难题。

redis7keeper的博客 866

ExtJS5.1学习笔记8——tab控件的使用

tab控件可以在多个页面间切换,如下图所示: 下面就是使用Ext实现tab控件的代码: Ext.onReady(function(){ var tabPanel = Ext.create('Ext.tab.Panel', { frame: true, renderTo: 'form', width

记录技术,记录生活 1341

ArcGIS小白必看:如何用3D Analyst工具将二维点线秒变三维模型(附详细步骤)

本文为ArcGIS初学者提供了利用3D Analyst工具将二维点、线数据快速转换为三维模型的完整指南。详细讲解了基于属性字段和数字高程模型(DEM)两种核心方法,并附上从数据准备、工具操作到三维场景可视化与问题排查的详细步骤,帮助用户轻松实现从平面到立体的空间数据建模。

nft7creator的博客 140

数据分析(二):学生成绩预测分析报告

表1 特征变量描述变量描述school学生的学校sex学生的性别age学生的年龄address学生的家庭住址类型famsize家庭规模Pstatus父母同居状况Medu母亲的教育Fedu父亲的教育Mjob母亲的工作Fjob父亲的工作reason选择学校的理由guardian学生监护人traveltime从家到学校的时间studytime每周学习时间failures过去的类失败次数schoolsup额外的教育支持famsup家庭教育支持。

m0_73963149的博客 4414

extjs Ext.tab.Panel tab面板组件学习

⭐️来自很多年前的extjs笔记,只是一个归档,不做更新!⭐️

西京刀客 2232

通过PXE的方式实现Ubuntu 24.04 自动安装

之前都是通过PXE来自动化安装Redhat系列的,例如:Rocky9、Rocky10、CentOS7、银河麒麟 Kylin-V10、Kylin-V11、OpenEuler 24.03等。现在安装Ubuntu系列的跟红帽的不太一样,所以在这里介绍下。

邢宇宇的博客 1490

ext 如何添加tabpanel

2.2.5 Ext.TabPanel Ext.TabPanel是另一个常用组件,一两句话很难说清楚,但是看到显示效果就很容易理解了。我们先来看图2-7。   图2-7 Ext.TabPanel 如图2-7所示,显示的内容随着你点击的标题而变化。实际上,它是多个不同内容的容器,任意组件直接使用add()函数便可添加到Ext.TabPanel中。

IT的专栏 1880

测试人必看!正交表与Allpairs工具对比:如何选择最适合你的组合测试方案?

本文深入对比了正交表、PICT与Allpairs三种主流组合测试方案,帮助测试人员根据项目场景做出最佳选择。文章分析了各自的核心原理、优劣势及适用场景,特别强调了在涉及复杂约束时PICT工具的强大功能,并提供了从原理学习到CI/CD集成的实战选型指南。

weixin_29224309的博客 267

Win10环境下VS2019离线部署OnnxRuntime的完整指南

本文提供了在Windows 10系统下,为Visual Studio 2019进行OnnxRuntime离线部署的完整教程。针对网络受限环境,详细讲解了如何获取正确的离线安装包、配置本地NuGet源,并逐步指导项目配置与测试,确保AI模型在C++环境中顺利运行。

weixin_29205061的博客 400

EXT中tabPanel动态创建tab页面

今天遇到通过EXT的tabpanel页面无法执行js的问题,因此无法动态建立Tab页面,上网查找解决办法,需要使用EXT的扩展插件库ManagedIFrame。  // ********************** // 在中间的面板加入tab function addTab(tabId, tabTitle, targetUrl) { // 定义ta

3054

特殊通信领域场景应用:基于Simulink的数字预失真(DPD)算法仿真建模示例

增益压缩:高功率输入时输出信号的增益下降。相位失真:输入信号的相位随功率变化而改变。带外干扰:非线性失真会引入额外的频谱分量,影响邻道信号。多项式模型:用多项式拟合功率放大器的非线性特性。查找表(LUT):通过离线训练生成预失真映射表。自适应算法:实时调整预失真参数以动态补偿失真。发送端:生成随机比特流并调制为射频信号。预失真模块:对输入信号进行预失真处理。功率放大器模块:模拟非线性失真。接收端:解调信号并评估误码率(BER)。

xiaoheshang_123的博客 272

ExtJS4中设置tabpanel的tab高度问题

  最近碰到个问题,在ExtJS中应该如何设置tabpanel的tab的高度?因为默认情况下,tab的高度太矮了,以至于tab的标题底部字都被截掉。设置了个tabpanel.minHeight = ‘500’,但是这个仅仅是设置tabpanel的高度,而不是设置tabpanel的每个tab的标题的高度。随后,又改成了minHeight:‘50’,好像效果还是不理想。   如果只是为了每...

dddp75921的博客 494

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Ext.TabPanel

TabPanel不显示面板的标题和头部工具条。   1、主要配置项:      activeTab:初始激活的tab,索引或者id值,默认为none       autoTabs:是否自动将带有'x-tab'样式类的div转成tabs添加到TabPanel中,默认为false。            当该配置项设为true时,需要设置deferredRender为false,还必须使用appl...

程序员的天堂 647

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Ext.TabPanel 各属性一览

Ext.TabPanel 各属性一览1、主要配置项: activeTab:初始激活的tab,索引或者id值,默认为none autoTabs:是否自动将带有'x-tab'样式类的div转成tabs添加到TabPanel中,默认为false。 当该配置项设为true时,需要设置deferredRender为false,还必须使用applyTo。 deferredRe

我的心里没有你也没有她 775

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Ext实现TabPanel的拖动新增

前几天看到iteye上,有人需要实现“把菜单中的项拖到TAB页就多一个TAB的功能”,就闲时写个简单实现。   先上效果图:   图1 图2 &lt;script type="text/javascript"&gt; Ext.onReady(function(){ //主要思路是用Ext.dd实现,定义一个TreePanel开启enableDrag允许拖动 var t...

追风的孩子 405

Extjs Tabpanel的使用

本文导读:TabPanel继承于Ext.Panel,Ext.TabPanel就是有选项卡的Panel,可以在选项卡之间切换。它是多个不同内容的容器,任意组件直接使用add()函数便可添加到Ext.TabPanel中。通过activeTab指定激活哪个面板,索引从0开始。下面介绍extjs中tabPanel的用法 一、tabPanel主要配置项 activeTab 初始激活的tab,索引或者...

Alex的博客 2419

Ext JS4.0中Tabpanel动态添加和删除Tab和重用Tab的方法

在ExtJS4.0 中,Tabpanel动态添加Tab的方法是:var tab = myTabPanel.add(newTab); myTabPanel.setActiveTab(newTab); 至于设置不设置为活动的,各人自己的想法。删除tab的方法有两种:第一种是删除指定Id的Tab,当然这个Id是添加Tab的时候自己指定的,删除的时候就用这个Id:myTabPanel.remove(

Bin 5286

Ext.TabPanel 的用法以及初始化items

TabPanel不显示面板的标题和头部工具条。 1、主要配置项: activeTab:初始激活的tab,索引或者id值,默认为none autoTabs:是否自动将带有'x-tab'样式类的div转成tabs添加到TabPanel中,默认为false。 当该配置项设为true时,需要设置deferredRender为fal...

自己的收藏请勿评论 675

EXT使用问题-动态创建tabPanel页面

今天遇到通过EXT的tabpanel页面无法执行js的问题,因此无法动态建立Tab页面,上网查找解决办法,需要使用EXT的扩展插件库ManagedIFrame。// ********************** // 在中间的面板加入tab function addTab(tabId, tabTitle, targetUrl) {

2110

ExtJs_Ext.TabPanel解释

/*!  * Ext JS Library 3.3.1  */ /**  * @class Ext.TabPanel  * A basic tab container. TabPanels can be used exactly(确切地) like a standard

cenyebao的专栏 8368

EXT中TREEPANEL控件和TABPANEL

在实际的项目中,左边树形菜单,提供各种功能点击,右边一个面板,随着左边节点的选择表现不同的功能内容,这是一个相当经典的布局,在Ext框架中,有两个控件TreePanel和TabPanel刚好完成这些功能,本文就这两个控件的搭配使用和点击左边树节点引起右边内容变化的方法作一个简单的介绍。首先看下面的具体的代码。 JS代码: TabPanel和Tree控件搭配测试 Ext.BL

jiang_dan的专栏 621

TabPanel控件

1、选项板概述   选项面板是一个包括一个或多个选项卡(Tab),同一时刻只显示一个选项卡的这种用户界面。比如下图的IE选项设置界面中,就是一个选项板的应用,选项板上有“常规”、“安全”、“隐私”等选项卡。 2、Ext.TabPanel   Ext中提供了选项板控件TabPanel,由类Ext.TabPanel来定义,该类直接继承自Ext.Panel,因此他实际上也是一个包含特定特性的面板。...

JAVA 574

Ext.TabPanel的api简介

TabPanel不显示面板的标题和头部工具条。   1、主要配置项:       activeTab:初始激活的tab,索引或者id值,默认为none         autoTabs:是否自动将带有'x-tab'样式类的div转成tabs添加到TabPanel中,默认为false。             当该配置项设为true时,需要设置deferredRender为fal

yancheng的专栏 1418
上一篇: EXTJS中TreePanel和TabPanel配合使用的问题
下一篇: 使用tree的左边菜单+多iframe实现的tab 实战
javaPie
博客等级 码龄16年 1171粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值