jQuery MiniUI

 找回密码
 立即注册
查看: 7724|回复: 8
打印 上一主题 下一主题

如何在主页面获取tab当前显示页面中的grid对象? [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2012-12-27 14:05:24 |只看该作者 |倒序浏览
想在用户点击关闭某一选项卡时判断当前选项卡内显示页面中的grid是否有修改未保存情况,用来提示用户
知道在mini-Tabs的onbeforeCloseClick事件中处理,但是不知道如何能获得当前tab页面中的grid?

Rank: 8Rank: 8

沙发
发表于 2012-12-27 14:38:49 |只看该作者
var iframeEl = tabs.getTabIFrameEl(tab);
var grid =  iframeEl.mini.get(id);

Rank: 3Rank: 3

板凳
发表于 2012-12-27 15:29:11 |只看该作者
factory 发表于 2012-12-27 14:38
var iframeEl = tabs.getTabIFrameEl(tab);
var grid =  iframeEl.mini.get(id);

tabs.getTabIFrameEl(tab);
括号内的tab应该写当前获取焦点的tab的name?我该如何获得它?

Rank: 8Rank: 8

地板
发表于 2012-12-27 15:36:40 |只看该作者
johnconner 发表于 2012-12-27 15:29
tabs.getTabIFrameEl(tab);
括号内的tab应该写当前获取焦点的tab的name?我该如何获得它? ...

是你关闭的tab选项卡对象,onbeforecloseclick="beforecloseclick"
function beforecloseclick(e){
  var tab = e.tab;
   tabs.getTabIFrameEl(tab);
}

也可以通过tabs.getTab(name/index)来获取到tab对象

Rank: 3Rank: 3

5#
发表于 2012-12-27 15:56:15 |只看该作者
factory 发表于 2012-12-27 15:36
是你关闭的tab选项卡对象,onbeforecloseclick="beforecloseclick"
function beforecloseclick(e){
  var ...

  1. function closeTab(e){
  2.             var tab = e.tab;
  3.             var iframeEl = tabs.getTabIFrameEl(tab);
  4.             var grid =  iframeEl.mini.get("datagrid1");
  5.             var data = grid.getChanges();alert(data.length);            
  6.             if(data.length>0){
  7.                 if(confirm("数据未保存将丢失,继续此操作?"))
  8.                     e.ok = true;
  9.                 else
  10.                     e.cancel = true;               
  11.             }
  12.         }
复制代码
老大,代码是这样写的,在alert的时候并没有获得grid中改动数据的数量,逐条alert时,var grid =  iframeEl.mini.get("datagrid1");
并没获得grid,是哪的错误?

Rank: 8Rank: 8

6#
发表于 2012-12-27 16:35:15 |只看该作者
johnconner 发表于 2012-12-27 15:56
老大,代码是这样写的,在alert的时候并没有获得grid中改动数据的数量,逐条alert时,var grid =  iframe ...

写错了。。。
var grid =  iframeEl.contentWindow.mini.get("datagrid1");
应该是这样

Rank: 3Rank: 3

7#
发表于 2012-12-27 16:47:05 |只看该作者
factory 发表于 2012-12-27 16:35
写错了。。。
var grid =  iframeEl.contentWindow.mini.get("datagrid1");
应该是这样

呵呵,OK了,弹出了询问窗口,但是点击取消,tab还是关闭了,也就是说
  1. if(confirm("数据未保存将丢失,继续此操作?"))
  2.                     e.ok = true;
  3.                 else
  4.                     e.cancel = true;
复制代码
e.ok和e.cancel都没起作用,如何让tab关闭动作终止?

Rank: 8Rank: 8

8#
发表于 2012-12-27 17:04:29 |只看该作者
johnconner 发表于 2012-12-27 16:47
呵呵,OK了,弹出了询问窗口,但是点击取消,tab还是关闭了,也就是说e.ok和e.cancel都没起作用,如何让t ...

嗯,发现了,问题已经处理掉了,你下载更新下

Rank: 3Rank: 3

9#
发表于 2012-12-28 09:15:00 |只看该作者
factory 发表于 2012-12-27 17:04
嗯,发现了,问题已经处理掉了,你下载更新下

好了,更新后正常了。

Archiver|普加软件

GMT+8, 2024-11-27 11:50 , Processed in 1.033269 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部