文档章节

jeecg3.5中实现从一个页面跳转到另一个页面

z_jordon
 z_jordon
发布于 2015/04/25 18:04
字数 596
阅读 2893
收藏 4

实现以下效果

点"跳转到demo"后直接跳转到demo示例,并且带上查询条件,如下:

由于jeecg使用的是easyui,所以不能直接用类似于<a href="xxxx.do?xxx">这样的方式来跳转了,但还是有办法做到的,首先在\plug-in\accordion\js\left_shortcut_menu.js中增加以下代码:

function goToTab(subtitle, url, icon) {
	// begin author:屈然博 2013-7-12 for:解决firefox 点击一次请求两次的问题
	var progress = $("div.messager-progress");
	if(progress.length){return;}
	// begin author:屈然博 2013-7-12 for:解决firefox 点击一次请求两次的问题
	rowid="";
	$.messager.progress({
		text : loading,
		interval : 200
	});
	if (!$('#maintabs').tabs('exists', subtitle)) {
		//判断是否进行iframe方式打开tab,默认为href方式
		if(url.indexOf('isHref') != -1){
			$('#maintabs').tabs('add', {
				title : subtitle,
				href : url,
				closable : true,
				icon : icon
			});		
		}else{
			$('#maintabs').tabs('add', {
				title : subtitle,
				content : '<iframe src="' + url + '" frameborder="0" style="border:0;width:100%;height:99.4%;"></iframe>',
				closable : true,
				icon : icon
			});		
		}

	} else {
		$('#maintabs').tabs('select', subtitle);
		if(url.indexOf('isHref') != -1){
			$('#maintabs').tabs('update', {
				tab : $('#maintabs').tabs('getSelected'),
				options : {
					href : url
				}
			});
		} else {
			$('#maintabs').tabs('update', {
				tab : $('#maintabs').tabs('getSelected'),
				options : {
					content : '<iframe src="' + url + '" frameborder="0" style="border:0;width:100%;height:99.4%;"></iframe>'
				}
			});
		}
		
		$.messager.progress('close');
	}

	// $('#maintabs').tabs('select',subtitle);
	tabClose();

}

这个方法实际上基本上都是抄原来的addTab方法,就是在如果原来已经打开tab的情况下用update的方式来更新tab。

然后在需要跳转到其它页面的地方增加以下代码,以jeecgNoteList.jsp为例:

<t:dgFunOpt funname="toDemo(id)" title="跳转到demo" />

对应的js:

function toDemo() {
    	var url = "jeecgDemoController.do?jeecgDemo&amp;selectedParams=" + encodeURIComponent("{\"sex\":0,\"createDate_begin\":\"2015-03-28\",\"createDate_end\":\"2015-04-14\"}");
    	window.parent.goToTab('Demo示例',url,'default')
    }

注意要用encodeURIComponent方法对链接进行处理,否则如果链接中带有特殊字符如引号的话不处理是无法正常传递参数的。

然后在目标界面增加以下代码,以jeecgDemoList.jsp为例:

$(function() {
		//延迟200毫秒执行,否则easyui会加载两次数据
		setTimeout(init, 200);
	});
	function init() {
		//alert($('#jeecgDemoList'));
		var href = decodeURIComponent(window.location.href);
		//alert(href);
		var idx = href.indexOf('selectedParams');
		if (idx != -1) {
			idx = href.indexOf("{", idx);
			if (idx != -1) {
				var endIdx = href.indexOf("}", idx);
				if (endIdx != -1) {
					var selectedParams = href.substring(idx, endIdx + 1);
					var jsonParam = $.parseJSON(selectedParams);
					$('#jeecgDemoListtb').find('*').each(function() {
						if (jsonParam[$(this).attr('name')] != undefined) {
							if ($(this)[0].tagName == "SELECT") {
								//$(this).attr("value", "0");
								$(this).val(jsonParam[$(this).attr('name')]);
							} else if ($(this)[0].tagName == "INPUT") {
								$(this).val(jsonParam[$(this).attr('name')])
							}
							
						}
					});
				}
				
			}
			
		}
		jeecgDemoListsearch();
	}

注意其中的jeecgDemoList类似的字眼因为是jeecg生成的,所以需要根据实际情况修改成实际的值。

© 著作权归作者所有

共有 人打赏支持
z_jordon
粉丝 36
博文 251
码字总数 78212
作品 0
厦门
技术主管
解决jeecg3.5中由于easyui的原因会加载两次数据的问题

在解决完jeecgt3.5中的这个问题:jeecg3.5中实现从一个页面跳转到另一个页面 后,发现数据会被加载两次,在网上找了半天也没找到原因,最后发现是由于调用datagrid方法太快引起的,解决方法为...

z_jordon
2015/04/27
0
0
JavaWeb09-HTML篇笔记(三)

1.1 案例二:登录成功以后5秒钟跳转到另一个页面.1.1.1 需求: 在登录成功后,页面5秒钟跳转到其他的一个页面. 1.1.2 分析:1.1.2.1 技术分析: 【使用Http协议中的Refresh头信息】 Refresh之前已...

我是小谷粒
05/21
0
0
C#页面之间跳转功能的小结

在两个ASP.NET页面之间传递值 引言 ASP.NET提供了卓越的事件驱动编程模型,让开发者简化了应用程序的总体设计,但是这个也造成了它固有的一些问题,例如,使用传统的ASP里,我们可以通过使用...

aehyok
2013/03/17
0
0
【Android基础】页面跳转与传值(Activity跳转与传值)

一个Android应用程序很少会只有一个Activity对象,如何在多个Activity之间进行跳转,而且能够互相传值是一个很基本的要求。 本次我们就讲一下,Android中页面跳转以及传值的几种方式! Acti...

晨曦之光
2012/03/01
5.9K
0
组件化知识梳理(4) - IOC & AOP 思想在 Arouter 中的应用

一、IoC 1.1 基本概念 ,中文翻译为 控制反转,具体实现是 由容器来控制业务对象之间的依赖关系,最终的目的是 避免和降低对象间的依赖关系。本质上是控制权由应用代码转到了外部容器,控制权...

泽毛
05/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

防止快速重复点击的两种思维

防止重复执行的两种思维 场景 下单时,提交按钮,因为网络卡顿或者手快重复点击,导致重复提交订单; 微博,更新个人状态或发表评论时,快速多次点击[发送]按钮,导致相同的信息发送多次. 解决思路 ...

黄威
33分钟前
0
0
在windows环境下使用Virtualbox虚拟Debian系统来运行Docker

标题绕口。 我之前一直使用 Virtualbox 和 homestead 来运行我的 PHP 开发环境。最近决心开始尝试 DevOps,使得开发、部署容器化,来化解人为操作失误和环境不兼容等问题造成的各种损失。就打...

zgldh
35分钟前
0
0
python map()

map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。(利用生成器的原理,并不马上返回值,...

南桥北木
49分钟前
0
0
分享几个 SpringBoot 实用的小技巧

前言 最近分享的一些源码、框架设计的东西。我发现大家热情不是特别高,想想大多数应该还是正儿八经写代码的居多;这次就分享一点接地气的: SpringBoot 使用中的一些小技巧。 算不上多高大上...

Java干货分享
49分钟前
2
0
day123-20181021-英语流利阅读-待学习

这款新字体,比记忆面包还管用 Lala 2018-10-21 1.今日导读 字体能跟学习效果有什么关系?你还别说,来自澳洲的心理学家和设计师们,还真创造了一款号称能够帮助大家记忆信息、增强学习效果的...

飞鱼说编程
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部