搞了两个多小时,最后还是使用模拟点击搞定了关于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的问题相关推荐

  1. easyUI实现tabs形式

    2019独角兽企业重金招聘Python工程师标准>>> 1.easyUI实现tabs形式 参考链接:http://www.jeasyui.com/demo/main/index.ph ...

  2. JSP/SERVLET(6)——Jquery EasyUI 选项卡Tabs的使用方法

    以下是easyUI的tabs的简单实用介绍. var e =$('#main').tabs('exists','accordion');   if(e==true){   $('#main').tab ...

  3. 关于jq+easy-ui 中上传文件所遇到的问题

    jq+easy-ui上传文件所遇到的问题 今天在公司维护老项目的时候,提出了一个新的需求. 就是要新增上传文件的功能 拿到新需求是手足无措,我首先想到了input type="file&qu ...

  4. jQuery easyui刷新当前tabs

    更新特定的选项卡面板 可使用update方法,param参数包含2个属性: tab: 将被更新的选项卡. options: 选项卡相关配置项. Example: //当前tab var current ...

  5. EasyUI中Tabs标签页的简单使用

    场景 效果 属性 tabs none 返回全部的标签页面板(tab panel). resize none 调整标签页(tabs)容器的尺寸并做布局. add options 添加一个新的标签页面板( ...

  6. easyui刷新几种方式

    easyui中刷新列表 //请求路径 $('#showProductDialogFormstandrad').datagrid("options").url = '<%=ba ...

  7. jsp 页面刷新,EasyUI刷新、加载

    jsp.HTML全页面刷新方法: 1.刷新当前页面:window.location.reload(); 2.刷新父亲对象(用于框架):parent.location.reload(); 3.刷新父窗口 ...

  8. easyui 刷新datagrid_easyUI跨tab刷新datagrid

    需要在当前页(tab)完成操作后刷新另外一个tab中datagrid的数据,然而在当前tab中获取到datagrid调用其load方法,datagrid从服务器获取到数据了,但是那个tab中的data ...

  9. php jq如何刷新当前页面,使用jQuery刷新(重新加载)一次页面?

    使用jQuery刷新(重新加载)一次页面? 我想知道如何使用jQuery刷新/重新加载页面(甚至特定div)一次(!)? 理想情况下,在replace()可用之后(参见onload事件)并且不会对ba ...

最新文章

  1. 小米note3无线显示电脑连接服务器,小米note3如何连接电脑 小米note3连接电脑没反应怎么办...
  2. 基于文本挖掘的企业隐患排查质量分析模型
  3. 记录一次bug解决过程:eclipse Installed JREs 配置引出的问题
  4. python解释器下安装z3_再次:在Windows上安装Z3 Python
  5. java实现选择排序 带打印,选择排序算法的JAVA实现
  6. 《VMware vSphere设计(原书第2版)》——1.1 什么是设计
  7. mysql统计同一字段重复的个数
  8. 隐藏窗口 java swing_Java简单实现贪吃蛇经典小游戏(附源代码)
  9. QT次线程连接数据库
  10. web前端对http理解
  11. 弹出对话框的同时保持页面的显示
  12. jQuery 2.0.3 源码分析Sizzle引擎 - 编译函数(大篇幅)
  13. 一次性说清楚秒验(本机号码一键登录)
  14. SAP中通过放大成本核算批量的方式解决由采购金额过小导致的”成本构成分解为零”的问题
  15. 计算机网络共享自动关,启用网络发现,重新打开“高级共享设置”对话框,显示仍是关闭状态...
  16. #foxpro(VFP) 入门(一) 常用命令
  17. xp 安装IPv6后,无法上网
  18. 抖音中用小程序自动制作人物关系图
  19. 数据处理(一)数据清洗
  20. 华为android机考题,华为无线题库_华为射频机考,华为无线射频题库

热门文章

  1. sql两个in并列_SQL窗口函数
  2. python创意编程是什么_Python趣味创意编程
  3. RS232电平 RS485电平 RS422电平 TTL电平
  4. 修改matlab的工作路径(图解版)
  5. ajax遍历数组对象数组对象数组,javascript - 从ajax json请求中,如何将对象动态添加到数组中,以便我可以遍历它们? - 堆栈内存溢出...
  6. qtableview与sqlite使用显示科学计算_使用MATLAB Profiler提升程序运行的效率
  7. android图片垂直居中,img图片在div里垂直居中的最佳解决方案
  8. map java 初始化赋值_Java 中 HashMap 初始化时赋值(示例代码)
  9. 等高线地图_高中地理——每日讲1题(北美洲的气候、等高线的阅读)
  10. jquery 查找表格里的input_jquery获取input表单值的代码