关于jq easyui 刷新tabs的问题
搞了两个多小时,最后还是使用模拟点击搞定了关于tabs刷新的问题。
情景如下图:父级页面:SystemManage.aspx 子页面(传感器管理):CGQManageWeb.aspx
使用jq-easyui提供的tabs插件完成的后台的布局操作。遇到一个问题,在父级页面添加新的tab panel也就是一个iframe后,如何在这个tab panel中调用jq-easyui提供的方法刷新这个页面。如图所示:当点击“保存修改”或“添加”后,如果保存成功那么同步刷新页面,以便重新加载数据。
有关jq-easyui的知识点可以看这里:http://www.jeasyui.net/plugins/160.html
方法:1.直接刷新页面,刷新前保存这个tab panel的title或者href,也就是在使用add方法添加新的tab panel时提供的url,然后重新设置这个panel的状态为选中状态,或者重新add一遍这个tab panel。
2.调用jq-esayui的自带方法update刷新选中的tab panel。
方法1是可行的,但没用这个方法去解决这个问题,我就想用方法2,有点轴。
addTab方法:
1 functionaddTab(title, url) {2 var gly = document.getElementById("gly").value;3 if (gly != 0&&title=="部门管理") {4 alert("无权限");5 return;6 }7 if ($('#tt').tabs('exists', title)) {8 $('#tt').tabs('select', title);9 } else{10 var content = '<iframe scrolling="auto" frameborder="0" src="' + url + '" style="width:100%;height:100%;"></iframe>';11 $('#tt').tabs('add', {12 title: title,13 content: content,//此处也可用href属性代替href:,14 closable: true 15 });16 }17 }
url就是要添加的tab的页面的地址。title就是显示的标题“传感器管理”。
下面进入正体,如何在当前选中页面中点击“保存”按钮后可以刷新当前页面。
首先来看官方的update方法的demo:
1 //update the selected panel with new title and content 2 var tab = $('#tt').tabs('getSelected'); //get selected panel 3 $('#tt').tabs('update', {4 tab: tab,5 options: {6 title: 'New Title',7 href: 'get_content.php' //the new content URL 8 }9 });10 11 //call 'refresh' method for tab panel to update its content 12 var tab = $('#tt').tabs('getSelected'); //get selected panel 13 tab.panel('refresh', 'get_content.php');
首先通过tabs方法获取选中的panel对象。然后调用update方法更新数据其实相当于重新加载了一次当前页面,只不过这个方法省了很多过程操作。
问题一,如果这个方法放在父级页面中去调用,一点问题都没有,但是如果是放在tab panel中这个子级页面中去调用就有问题了,$("#tt")是无法获取到对象的,因为在iframe里是找不到这个元素的。所以需要使用parent方法。
第二个问题,tabs方法无法识别,虽然在父级页面中你已经引入了easyui的js文件,但是iframe里是无法识别的,所以报错!还需要在子级页面iframe中引入js文件。
问题三,如上述代码中的第7行,需要提供href的值,如果在你不知道的情况下如果提供,或者说,即使知道每次调用也要改这个参数,很是麻烦!
下面解决这些问题:
问题一,没想到什么好办法,而且找到的办法都无效,弃之,所以update方法还是放在了父级页面中。方法如下:
1 functionReFresh() {2 var current_tab = $("#tt").tabs("getSelected");3 var urlstr = current_tab.panel('options').content.split('src')[1].split('style')[0];//获取tab panel的content,因为addTab方法中使用的就是content4 var URL = urlstr.substring(2, Number(urlstr.length-2));//截取url5 $("#tt").tabs('update', {6 tab: current_tab,7 options: {8 content: '<iframe scrolling="auto" frameborder="0" src="' + URL + '" style="width:100%;height:100%;"></iframe>',9 //或者 href : ''; 10 }11 });12 }
这样$("#tt")就可以获取到对象了。
问题二,看代码中的3-4行,获取选中tab panel的href或url。
获取content的具体内容因为content里面包含tab panel的地址URL。然后根据URL的特点截取重要信息。
问题三,通过获取content的值就能获取到被选中的tab panel的href。
一个隐藏的button调用该方法。
1 <inputtype="button"value="re"id="re"onclick="ReFresh()"style="display:none"/>
该方法在CGQManageWeb.aspx上,获取隐藏的button,然后触发点击事件。
1 //模拟点击进行刷新 2 functionReFresh()3 {4 var btn = parent.document.getElementById("re");5 //alert(btn.value); 6 btn.click();7 }
结束,可能不是很清楚,可能还有更好的方法,请大神勿喷!
转载于:https://www.cnblogs.com/rsj1767/p/8321225.html
关于jq easyui 刷新tabs的问题相关推荐
- easyUI实现tabs形式
2019独角兽企业重金招聘Python工程师标准>>> 1.easyUI实现tabs形式 参考链接:http://www.jeasyui.com/demo/main/index.ph ...
- JSP/SERVLET(6)——Jquery EasyUI 选项卡Tabs的使用方法
以下是easyUI的tabs的简单实用介绍. var e =$('#main').tabs('exists','accordion'); if(e==true){ $('#main').tab ...
- 关于jq+easy-ui 中上传文件所遇到的问题
jq+easy-ui上传文件所遇到的问题 今天在公司维护老项目的时候,提出了一个新的需求. 就是要新增上传文件的功能 拿到新需求是手足无措,我首先想到了input type="file&qu ...
- jQuery easyui刷新当前tabs
更新特定的选项卡面板 可使用update方法,param参数包含2个属性: tab: 将被更新的选项卡. options: 选项卡相关配置项. Example: //当前tab var current ...
- EasyUI中Tabs标签页的简单使用
场景 效果 属性 tabs none 返回全部的标签页面板(tab panel). resize none 调整标签页(tabs)容器的尺寸并做布局. add options 添加一个新的标签页面板( ...
- easyui刷新几种方式
easyui中刷新列表 //请求路径 $('#showProductDialogFormstandrad').datagrid("options").url = '<%=ba ...
- jsp 页面刷新,EasyUI刷新、加载
jsp.HTML全页面刷新方法: 1.刷新当前页面:window.location.reload(); 2.刷新父亲对象(用于框架):parent.location.reload(); 3.刷新父窗口 ...
- easyui 刷新datagrid_easyUI跨tab刷新datagrid
需要在当前页(tab)完成操作后刷新另外一个tab中datagrid的数据,然而在当前tab中获取到datagrid调用其load方法,datagrid从服务器获取到数据了,但是那个tab中的data ...
- php jq如何刷新当前页面,使用jQuery刷新(重新加载)一次页面?
使用jQuery刷新(重新加载)一次页面? 我想知道如何使用jQuery刷新/重新加载页面(甚至特定div)一次(!)? 理想情况下,在replace()可用之后(参见onload事件)并且不会对ba ...
最新文章
- 小米note3无线显示电脑连接服务器,小米note3如何连接电脑 小米note3连接电脑没反应怎么办...
- 基于文本挖掘的企业隐患排查质量分析模型
- 记录一次bug解决过程:eclipse Installed JREs 配置引出的问题
- python解释器下安装z3_再次:在Windows上安装Z3 Python
- java实现选择排序 带打印,选择排序算法的JAVA实现
- 《VMware vSphere设计(原书第2版)》——1.1 什么是设计
- mysql统计同一字段重复的个数
- 隐藏窗口 java swing_Java简单实现贪吃蛇经典小游戏(附源代码)
- QT次线程连接数据库
- web前端对http理解
- 弹出对话框的同时保持页面的显示
- jQuery 2.0.3 源码分析Sizzle引擎 - 编译函数(大篇幅)
- 一次性说清楚秒验(本机号码一键登录)
- SAP中通过放大成本核算批量的方式解决由采购金额过小导致的”成本构成分解为零”的问题
- 计算机网络共享自动关,启用网络发现,重新打开“高级共享设置”对话框,显示仍是关闭状态...
- #foxpro(VFP) 入门(一) 常用命令
- xp 安装IPv6后,无法上网
- 抖音中用小程序自动制作人物关系图
- 数据处理(一)数据清洗
- 华为android机考题,华为无线题库_华为射频机考,华为无线射频题库
热门文章
- sql两个in并列_SQL窗口函数
- python创意编程是什么_Python趣味创意编程
- RS232电平 RS485电平 RS422电平 TTL电平
- 修改matlab的工作路径(图解版)
- ajax遍历数组对象数组对象数组,javascript - 从ajax json请求中,如何将对象动态添加到数组中,以便我可以遍历它们? - 堆栈内存溢出...
- qtableview与sqlite使用显示科学计算_使用MATLAB Profiler提升程序运行的效率
- android图片垂直居中,img图片在div里垂直居中的最佳解决方案
- map java 初始化赋值_Java 中 HashMap 初始化时赋值(示例代码)
- 等高线地图_高中地理——每日讲1题(北美洲的气候、等高线的阅读)
- jquery 查找表格里的input_jquery获取input表单值的代码