前几天工作中需要使用Ext
的TabPanel标签页加载两个完整页面。就在网上查,看到了这篇文章:“Ext.TabPanel之第一式
”。这篇文章讲解到如何在“用iframe加载其他完整页面的tabpanel”。但是,里面只加载了一个页面,而且切换页面时,是点击TabPanel外的一个“链接”,然后使用onclick事件来处理的。显然,不符合要求。不过,这篇文章也给我指明了方向,教会了如何使用TabPanel。可以照着这个思路做处理。
第一个方法:
照着那篇文章,同时参考ExtJS
的API文档,写一个例子。步骤如下:
注:这里我只粘贴最主要的代码,至于ExtJS
库的引入方法和需要引入的文件,请参考“深入浅出Ext JS(第二版)——学习笔记
”;次要代码,可以自己补充。
1、首先在页面中引入ExtJS
库。然后在index.jsp的body标签中,添加如下代码:
注:请把keyIndex.jsp和alarmIndex.jsp存放在这个index.jsp文件的同一目录下。这两个文件的内容可以随意填写,只需要能区分开就可以了。
2、在index.jsp文件的script(注意:这个标签要放在引入ExtJS库的script标签后面)标签中,添加生成TabPanel的代码。如下:
Ext
.onReady(function(){
var firstActive = true; //处理加载时,事件监听自动执行的问题。
var kpiTab=new Ext
.TabPanel({
renderTo:'kpiTab',
activeTab:0,
height:438,//设置TabPanel标签页的高度。当用viewport布局时,这个height可以省去
frame:true,
items:[
{
contentEl:"keyFrame",
title:"关键信息",
closable:false
},
{
contentEl:"alarmFrame",
title:"预警信息",
closable:false
}
],
listeners:{
'tabchange' : function(tp, panel){
if(firstActive){ //处理加载时,事件监听自动执行的问题。我们让第一次加载时不执行即可。
firstActive = false;
}else{
document.getElementById('alarmFrame').style.display='block';
}
}
}
});
});
这个标签页就可以正确加载两个完整的页面了。
这里有两个问题需要注意:
①、在iframe id=""alarmFrame"……style="overflow:hidden;display:none;""中,我把这个标签的现实属性设置为:display:none。这时因为,如果我不设置成隐藏的话,在加载完之后,两个iframe的内容都会在页面上现实处理。这时不符合要求的。因为设置成隐藏。所以,需要添加事件处理。将它的现实属性修改为可见。另外,这个“两个iframe的内容都会在页面上”的问题只有在加载完成后,第一次切换标签页之前,才会有。当切换一次标签页之后就没有了。所以,只需要在第一次切换标签页时,把页面设置成可见即可。
②、由于TabPanel的事件监听在加载时会自动执行一遍。而这时,我并不需要把《iframe id="alarmFrame"》设置设置成可见。所以,需要对事件处理需要做个特殊处理。详细处理方法。请见代码。
很显然,这种方法一些不足,主要是添加事件监听;同时,还要先把页面隐藏起来。我相信,还会有更好的实现方式。
第二种方法:
其实,我们只需要把这个iframe标签的内容放到TabPanel的配置项html中即可。而且,还没有第一种方法的缺点。具体步骤如下:
1、在index.jsp的body中,添加如下代码:
2、在index.jsp文件的script(注意:这个标签要放在引入ExtJS库的script标签后面)标签中,添加生成TabPanel的代码。如下:
});
});
执行,相信没什么问题。
最后,留给大家一个问题:在:“Ext.TabPanel之第一式
”中,通过使用onclick事件改变src属性值的方式,来实现TabPanel页内容的切换。请问,能否通过TabPanel的tabchange事件改变src属性值的方式来实现标签页的切换?
注:本来想贴代码,方便大家使用。奈何编辑工具不给力,标签不能正常转换。如果需要代码,请给我留言,我发到各位的邮箱里。
(这是我发表到我自己博客上的文章贴出来和大家分享!)
更多内容,请见我的博客:“地瓜哥”,http://www.diguage.com/
分享到:
相关推荐
### ExtJS 4.2.1 TabPanel 刷新与关闭标签...综上所述,ExtJS 4.2.1提供了丰富的API来处理`TabPanel`的各种操作,包括刷新和关闭标签页等功能。开发者可以根据实际需求灵活运用这些API,实现高效且功能丰富的用户界面。
在tabpanel中,每个面板对应一个标签页签,使用户可以在多个面板之间进行切换。当用户点击某个标签页签时,该标签页签将变为当前活动页签,并且其样式将发生变化。 要设置tabpanel当前活动页签的样式,可以添加CSS...
这两个文件可能是主入口文件或临时脚本,它们可能包含了初始化 `tabPanel`、处理数据交互或其他辅助功能的代码。例如,`index.js` 可能负责整个页面的布局和组件的实例化,而 `temp.js` 可能包含一些通用的函数或者...
ExtJS的TabPanel是其组件库中的一个核心组件,用于创建具有多个标签页的应用界面,每个标签页可以承载不同的内容。在本主题中,我们将深入探讨如何操作ExtJS的TabPanel,包括创建、添加、删除和切换标签页,以及...
extjs动态添加tabpanel标签页支持pannel嵌入 逻辑代码在 MyWindow.js里面直接调用 方法 就可以
本篇文章将深入探讨如何在EXT JS的`TabPanel`中实现动态页面加载,这在构建可扩展且高效的Web应用时非常关键。通过动态加载,我们可以避免一次性加载所有标签页内容,从而改善用户体验,减少初次加载时的网络负担。 ...
在EXTJS 4.x框架中,`tabpanel`是用于创建多标签界面的组件,它可以方便地组织和切换多个视图。动态加载panel和HTML到tabpanel是提高应用性能和用户体验的有效方式,因为它允许按需加载内容,减少初始页面加载时间。...
使用方法 页面引入jQuery.js、TabPanel.js、Fader.js、TabPanel.css new TabPanel({ renderTo:'tabs', width: '100%', height: '500px', active: 0, items: [{ title:'工作中心', html:'<iframe ...
在ExtJS6中,IFrame.js插件可能被用来创建和管理IFrame组件,以便在应用中加载外部资源或实现跨域通信。然而,根据描述,这个插件存在一个问题:在某些情况下,IFrame加载的内容可能无法正常访问。这可能是由于网络...
在实际项目中,结合`jq`库(可能是jQuery的简写),可以方便地处理DOM操作,与EXTJS的组件交互,进一步增强动态加载的效果,比如添加动态加载的动画、错误处理等。 总结来说,`Ext.Panel`和`TreePanel`在EXTJS中是...
在给定的标题"TabPanel加载页面"中,我们可以理解为讨论的是如何在`TabPanel`组件中动态加载页面内容。这通常涉及到以下几个关键知识点: 1. **动态加载**:在用户点击某个标签时,只加载对应的页面内容,而不是一...
通过以上步骤,我们不仅学习了如何在ExtJS 4.2中根据不同数值设置TabPanel中GridPanel行的背景颜色,而且还了解了如何利用CSS和JavaScript结合来实现灵活多变的界面效果。这种方法不仅适用于数值类型的数据,还可以...
在ExtJS中,`Store`对象负责从服务器获取数据并存储到客户端,供应用程序使用。为了在加载数据时给用户提供反馈,可以利用`beforeload`事件和`Ext.MessageBox.show`方法来实现加载提示。 #### 1. 使用`beforeload`...
在本示例中,我们关注的是树结构的异步加载,这是一种优化性能的技术,避免一次性加载大量数据导致页面响应缓慢。 异步加载,也称为懒加载或需求加载,意味着当用户滚动、展开节点或者进行其他交互时,只加载当前...
在“ExtJS扩展:垂直页签tabPanel”这个主题中,我们将探讨如何在ExtJS中实现一个创新的垂直布局的页签(tab)组件,这在很多情况下可以提供更好的用户界面体验。 首先,我们看到有两个JavaScript文件,TabPanel.js...
在IT领域,特别是Web开发中,ExtJS是一个广泛使用的JavaScript框架,它提供了丰富的用户界面组件和强大的数据管理功能。本文将深入探讨如何使用ExtJS构建动态异步加载的树形结构,结合AJAX技术实现JSON数据的高效...
动态加载菜单是ExtJS中的一个关键特性,它允许在用户交互过程中动态地创建、修改和加载菜单项,提供了更灵活的用户界面设计。在“Extjs动态加载菜单”这个主题中,我们将深入探讨这一功能的实现方式以及相关技术。 ...
在给定的"ExtJs GridPanel延时加载.rar"文件中,主要涉及的核心概念是ExtJs中的GridPanel组件以及延时加载技术。GridPanel是ExtJs中一个非常重要的组件,它用于展示表格数据,而延时加载则是一种优化大量数据处理的...
标题“Extjs 动态加载树”涉及到的是一个前端开发技术话题,主要集中在使用Extjs框架构建能够动态加载数据的树形结构。Extjs是一个基于JavaScript的组件化UI库,常用于开发富客户端应用。动态加载树(Dynamic ...
异步加载树型是 ExtJS Tree 的一个重要特性,允许只在需要时动态加载子节点,从而提高页面的加载速度和用户体验。 异步加载通常通过 AJAX 请求实现,只有当用户展开一个节点时,才会向服务器请求该节点的子节点数据...