實現如下效果java
點"跳轉到demo"後直接跳轉到demo示例,而且帶上查詢條件,以下:json
因爲jeecg使用的是easyui,因此不能直接用相似於<a href="xxxx.do?xxx">這樣的方式來跳轉了,但仍是有辦法作到的,首先在\plug-in\accordion\js\left_shortcut_menu.js中增長如下代碼:jsp
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。ui
而後在須要跳轉到其它頁面的地方增長如下代碼,以jeecgNoteList.jsp爲例:this
<t:dgFunOpt funname="toDemo(id)" title="跳轉到demo" />
對應的js:url
function toDemo() { var url = "jeecgDemoController.do?jeecgDemo&selectedParams=" + encodeURIComponent("{\"sex\":0,\"createDate_begin\":\"2015-03-28\",\"createDate_end\":\"2015-04-14\"}"); window.parent.goToTab('Demo示例',url,'default') }
注意要用encodeURIComponent方法對連接進行處理,不然若是連接中帶有特殊字符如引號的話不處理是沒法正常傳遞參數的。firefox
而後在目標界面增長如下代碼,以jeecgDemoList.jsp爲例:code
$(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生成的,因此須要根據實際狀況修改爲實際的值。get