先上图片:
<!--StartFragment -->
实现的效果是:每个tab页存放的是一个jsp页面,并且根据要求,实现重新加载tab页中的jsp页面。
步骤一:
定义一个form表单(定义form的目的主要是为了实现post提交,为什么要使用post提交,我想大家都知道):
<form name="tabD" method="post" id="tabD"></form>
PS:参数并不一定需要存放在form表单定义的文本框,可以直接构造带参数的url
定义一个tabPanel :
var tabs = growRecord.tabs = new Ext.TabPanel({
region:'center',
forceLayout:true,
margins:'0 5 5 0',
width:'100%',
activeTab: 0,
items:[
{title: '基本信息', html: "<iframe name ='tab0', id ='tab0',scripts=true,scrolling='auto' frameborder='0' width='100%' height='100%' src=' '/>"},
{title: '播种', html: "<iframe name ='tab1', id ='tab1',scripts=true,scrolling='auto' frameborder='0' width='100%' height='100%' src=' '/>"},
{title: '出苗情况', html: "<iframe name ='tab2', id ='tab2',scripts=true,scrolling='auto' frameborder='0' width='100%' height='100%' src=' '/>"},
{title: '苗床管理', html: "<iframe name ='tab3', id ='tab3',scripts=true,scrolling='auto' frameborder='0' width='100%' height='100%' src=' '/>"},
{title: '供苗管理', html: "<iframe name ='tab4', id ='tab4',scripts=true,scrolling='auto' frameborder='0' width='100%' height='100%' src=' '/>"}
]
});
tab页中的html属性中定义一个iframe,其中name 是非常重要的(下文将提到)。
growRecord.tabs.on('tabchange',function(tabOld, tab){
growRecord.tabChanceF(tab);//此事件主要是实现url的构造(动态改变Url)
});
最关键的方法就是growRecord.tabChanceF了:
//url的制定
Url0 = "tpGrowPoints.do?method=getTpGrowPointAndBigCanopy";//基本信息
Url1 = "tpGrowPoints.do?method=getTpFeedingBZ";//播种
Url2 = "ynPlantTasks.do?method=growTask";//出苗情况
Url3 = "ynPlantTasks.do?method=growTask";//苗床管理
Url4 = "ynPlantTasks.do?method=growTask";//供苗管理
growRecord.tabChanceF = function(tab){
//参数的动态变化
growRecord.urlP = '&grow_point_id='+growRecord.growId + '&grow_point_cd='+growRecord.growCd + '&business_year='+growRecord.bussinessYear+'&is_time_out='+ growRecord.isTimeOut+'&is_archiving='+growRecord.isArchiving+'&user_name='+growRecord.userName+'&user_uuid='+growRecord.userId+'&plan_begin_date='+growRecord.plantBeginDate+'&plan_begin_date='+growRecord.plantEndDate+'&login_org_cd='+growRecord.orgCd+'&remark1='+growRecord.remark1+'&remark2='+growRecord.remark2+'&remark3='+growRecord.remark3+'&remark4='+growRecord.remark4;
if(growRecord.growId != null){
switch(tab.title){
case '基本信息':
formU = Ext.getDom('tabD');//获取定义的form
formU.reset();
formU.action = "<c:url value='" + Url0 + growRecord.urlP +"'/>"; //指定url
formU.target = 'tab0'; //将target指定为iframe的name属性值(如果指定为id的值,ie浏览器将没有效果),实现提交返回的jsp放置在iframe中(关键)
formU.submit();//提交
break ;
case '播种':
formU = Ext.getDom('tabD');
formU.reset();
formU.action = "<c:url value='" + Url1 + growRecord.urlP +"'/>";
formU.target = 'tab1';
formU.submit();
break ;
case '出苗情况':
formU = Ext.getDom('tabD');
formU.reset();
formU.action = "<c:url value='" + Url2 + growRecord.urlP +"'/>";
formU.target = 'tab2';
formU.submit();
break ;
case '苗床管理':
formU = Ext.getDom('tabD');
formU.reset();
formU.action = "<c:url value='" + Url3 + growRecord.urlP +"'/>";
formU.target = 'tab3';
formU.submit();
break ;
case '供苗管理':
formU = Ext.getDom('tabD');
formU.reset();
formU.action = "<c:url value='" + Url4 + growRecord.urlP +"'/>";
formU.target = 'tab4';
formU.submit();
break ;
}
}
}
- 大小: 105.9 KB
分享到:
相关推荐
在IT行业中,网页开发经常会遇到文件上传的需求,而"jSP+EXTJS实现upload UploadDialog"就是一种常见的解决方法。这个话题主要涵盖了两个关键部分:JavaServer Pages (JSP) 和 ExtJS,它们共同用于创建一个具有文件...
在ExtJS6中,IFrame.js插件可能被用来创建和管理IFrame组件,以便在应用中加载外部资源或实现跨域通信。然而,根据描述,这个插件存在一个问题:在某些情况下,IFrame加载的内容可能无法正常访问。这可能是由于网络...
在ExtJS中,这种功能主要通过`Ext.tree.TreePanel`或其现代版本`Ext.tree.View`来实现。 一、ExtJS 动态树基础 1. `Ext.tree.TreePanel`:这是ExtJS中用于创建树形结构的主要组件。它具有丰富的配置项和事件,支持...
在"Extjs 做的treepanel+tab切换页"这个项目中,我们主要关注的是如何利用ExtJS 3.2版本来创建一个具备折叠面板(Collapsible Panel)功能的树形视图(TreePanel),以及与之联动的选项卡(TabPanel)。这个设计允许...
如果标签页本身并没有定义`loader`对象,则可以通过动态创建的方式为其添加一个`TreeLoader`实例,以实现数据的加载和刷新。 #### 关闭当前标签页 关闭当前标签页是`TabPanel`常见的需求之一,可以通过如下方式...
通过阅读和分析提供的文件内容,我们可以更深入地学习这两种不同的动态表头实现方式,比较它们的优缺点,并从中吸取经验。这不仅可以提升个人的ExtJS技能,也有助于在实际项目中实现更高效、更灵活的数据展示。在...
本例"JSP实现树型结构TREE"提供了一个使用JSP(JavaServer Pages)、EXTJS(一个前端JavaScript框架)、JSON(JavaScript Object Notation)以及MySQL数据库来创建树形结构的示例,这对于初学者或开发者来说,是一个...
创建一个Tab Panel首先要实例化`Ext.tab.Panel`对象,并在配置项中指定各个Tab。例如: ```javascript var tabPanel = Ext.create('Ext.tab.Panel', { renderTo: Ext.getBody(), // 将Tab Panel渲染到页面主体 ...
在这个场景中,“部分纯静态页面”可能意味着这些页面主要依赖于前端代码来呈现和操作数据,不依赖于后端动态渲染。 描述中提到的“NULL”没有提供额外信息,但我们可以通过标签和博文链接进一步理解。标签“源码”...
extjs4.0 实现了主页面框架(主框架使用Ext.Viewport,banner使用Ext.panel.Panel,通过toolbar来放置按钮),包括左侧动态菜单实现(采用Ext.tree.Panel)动态从数据库加载数据来显示菜单(后台代码也在了通过json...
在实现三级联动时,可以使用ExtJS的ComboBox组件,通过store与远程数据源(servlet)连接,实现数据的动态加载。ExtJS的模型层(Model)、存储层(Store)和视图层(View)设计使数据管理更为规范,同时其丰富的组件...
extjs动态添加tabpanel标签页支持pannel嵌入 逻辑代码在 MyWindow.js里面直接调用 方法 就可以
总的来说,EXTJS提供多种方式实现不同页面间的数据通信,包括全局变量、事件系统以及状态管理。开发者可以根据项目的具体需求选择合适的方法,同时注意避免引入不必要的复杂性和潜在问题。在实际开发中,应确保数据...
其中, `.x-tab-active` 是Extjs中当前活动页签的CSS类名, `.x-tab-wrap` 是标签页签的容器, `.x-tab-button` 是标签页签的按钮, `.x-tab-inner` 是标签页签的内部容器。 在上面的代码中,我们使用了CSS选择器来...
总结起来,"jsp+access+extjs动态树实例"是一个综合性的Web开发案例,它结合了服务器端的JSP处理、数据库操作以及客户端的动态展示技术,展示了如何利用现有工具和技术实现一个功能丰富的交互式动态树视图。...
动态加载可以通过设置`autoLoad`为`false`和`loader`对象来实现。 3. **定义树视图**(Ext.tree.Panel):这是展示树形结构的组件。我们需要设置`store`属性为之前创建的树存储,并通过`displayField`指定显示节点...
通过深入研究这些源码,可以学习到如何在JSP和EXTJS环境中实现完整的业务流程。 总的来说,"jsp extjs Efs管理系统"项目提供了一个集成了JSP、EXTJS和多种数据库的实例,对于学习Web开发、特别是Java Web和前端框架...
在"extjs做界面的jsp系统"这个项目中,ExtJS 被用来设计和实现系统的前端界面部分,与后端的Java技术栈(如Struts)和数据库MySQL相结合,形成一个完整的系统。 1. **ExtJS 界面设计**: - ExtJS 提供了各种预定义...
开发者可能通过设置动画参数,如持续时间、缓动函数、关键帧等,来实现书页翻转时的平滑动态效果。此外,`Ext.util.Transition`也可以用来创建更复杂的页面转换动画,让用户体验到类似实体书翻页的视觉冲击。 在...
通过这段代码,当用户在使用TabPanel时,点击与“系统容量分配”相关的Tab页,浏览器会加载并展示指定URL(***)所指向的报表内容。 在使用ManagedIFrame插件时,需要注意以下几点: 1. 确保已经正确引入了...