jQuery MiniUI

标题: 子界面数据如何设置到父界面上的问题 [打印本页]

作者: sd_tz_123    时间: 2012-10-25 16:08:42     标题: 子界面数据如何设置到父界面上的问题

在父界面通过一个按钮弹出子界面,在子界面添加数据保存之后,想关闭子界面,然后将子界面的数据设置到对应的问题
作者: factory    时间: 2012-10-25 16:11:52

在关闭按钮的方法里面,通过window.Owner.XXX(data);来调用父页面的方法。
data是子页面上的数据,父页面XXX(data)可以这样获取
作者: sd_tz_123    时间: 2012-10-26 11:29:37

factory 发表于 2012-10-25 16:11
在关闭按钮的方法里面,通过window.Owner.XXX(data);来调用父页面的方法。
data是子页面上的数据,父页面XX ...

我用了这个方法可是不可以啊
我在父界面方法里
function AddClientLink(){
                          var form = new mini.Form("#form1");
                  var o = form.getData();
                  var phone=o.telephone;
                  var toPage=mini_JSPath+ "../.."+"/basic/res_client/resclientlink.jsp?phone="+phone
                  mini.open({
                  url: toPage,
                  title: "新增联系人", width: 700, height: 400,
              });

子界面返回按钮的方法是

   function close() {
                 var form = new mini.Form("#form1");
             var o = form.getData();
             window.owner.AddClientInfo(o);
             window.CloseOwnerWindow();
        }
父界面有AddClientInfo(data)方法
function AddClientInfo(data){
                         mini.get("house_name").setText(data.housename);
                      mini.get("house_name").setValue(data.housename);
                      mini.get("belongproject").setValue(data.belongproject);
                      mini.get("belongbuild").setValue(data.belongbuild);
                      mini.get("unitname").setValue(data.unitname);
                      mini.get("pk_floor").setValue(data.pk_floor);
                      mini.get("pk_house").setValue(data.pk_house);       
                      mini.get("housename").setValue(data.housename);               
                      mini.get("tenantsname").setText(data.client_name);
                      mini.get("tenantsname").setValue(data.client_name);
                      mini.get("telephone").setValue(data.phone);
                      mini.get("pk_client").setValue(data.pk_client);
                        }
     可是我子界面点击返回界面并不关闭,这样我也不知道父界面能不能获取到值
帮忙看下有哪里不对吗
作者: niko    时间: 2012-10-26 12:15:50

window.Owner.AddClientInfo(o);

大小写错了。
作者: sd_tz_123    时间: 2012-10-26 13:41:13

本帖最后由 sd_tz_123 于 2012-10-26 13:44 编辑
niko 发表于 2012-10-26 12:15
window.Owner.AddClientInfo(o);

大小写错了。


我改为大写也还是没有关闭,而且报脚本错误'window.Owner' 为空或不是对象
作者: factory    时间: 2012-10-26 13:52:34

sd_tz_123 发表于 2012-10-26 13:41
我改为大写也还是没有关闭,而且报脚本错误'window.Owner' 为空或不是对象


吧你父子2个页面一起上传上来,我看看。
光这2个方法看不出来问题
作者: sd_tz_123    时间: 2012-10-26 14:03:20

factory 发表于 2012-10-26 13:52
吧你父子2个页面一起上传上来,我看看。
光这2个方法看不出来问题

父界面,
  <a class="mini-button" iconCls="icon-add" plain="true" onclick="AddClientLink">添加联系人</a>
        function AddClientLink(){
                          var form = new mini.Form("#form1");
                  var o = form.getData();
                  var phone=o.telephone;
                  var toPage=mini_JSPath+ "../.."+"/basic/res_client/resclientlink.jsp?phone="+phone
                  mini.open({
                  url: toPage,
                  title: "新增联系人", width: 700, height: 400,
               
              });
}

子界面resclientlink.jsp
<a class="mini-button" iconCls="icon-goto" plain="true"  onclick="close">返回</a>
  function close() {
                 var form = new mini.Form("#form1");
             var o = form.getData();
             window.Owner.AddClientInfo(o);
             window.CloseOwnerWindow();
        }
这些代码不够吗?
作者: factory    时间: 2012-10-26 14:31:40

sd_tz_123 发表于 2012-10-26 14:03
父界面,
  添加联系人
        function AddClientLink(){

你贴的代码没什么问题,看不出为什么window.Owner为空啊。
你去java版的demo上测试,window.Owner这个到底能不能为不为空
作者: sd_tz_123    时间: 2012-10-26 14:59:40

factory 发表于 2012-10-26 14:31
你贴的代码没什么问题,看不出为什么window.Owner为空啊。
你去java版的demo上测试,window.Owner这个到 ...

那子界面关闭不上和这个有关吗?我的问题的关键是子界面不关闭,我父界面不知道能不能获取到子界面的数据,除了这种写法还有其他的方法吗
作者: factory    时间: 2012-10-26 15:23:42

sd_tz_123 发表于 2012-10-26 14:59
那子界面关闭不上和这个有关吗?我的问题的关键是子界面不关闭,我父界面不知道能不能获取到子界面的数据 ...


你把window.Owner去掉,再试试关闭。window.Owner是父窗体对象。
作者: sd_tz_123    时间: 2012-10-26 15:50:11

factory 发表于 2012-10-26 15:23
你把window.Owner去掉,再试试关闭。window.Owner是父窗体对象。

我现在把子界面的关闭方法里直接
function close() {
          var form = new mini.Form("#form1");
             var o = form.getData();
           
             window.close();
        }
出现了死循环是什么原因        

作者: factory    时间: 2012-10-26 16:08:23

sd_tz_123 发表于 2012-10-26 15:50
我现在把子界面的关闭方法里直接
function close() {
          var form = new mini.Form("#form1");

window.CloseOwnerWindow();
关闭父页面弹出的子窗口,用这个关闭
这段代码里面哪里能看出死循环呢?
我说了你把2个页面打包上传上来,我给你看。
光贴代码片段看不出问题啊
作者: sd_tz_123    时间: 2012-10-26 16:14:07

factory 发表于 2012-10-26 16:08
window.CloseOwnerWindow();
关闭父页面弹出的子窗口,用这个关闭
这段代码里面哪里能看出死循环呢?

关闭是可以了,就是把子界面的数据放到父界面上这个问题了

作者: factory    时间: 2012-10-26 16:16:38

sd_tz_123 发表于 2012-10-26 16:14
关闭是可以了,就是把子界面的数据放到父界面上这个问题了

恩,我帮你看下
作者: factory    时间: 2012-10-26 16:29:28

factory 发表于 2012-10-26 16:16
恩,我帮你看下


我发现你的miniui、的引入还是
<script src="../../scripts/miniui/miniui.js" type="text/javascript"></script>
。。。。。
这样子的引入方式,现在都是只引用一个
<script src="../../scripts/boot.js" type="text/javascript"></script>就可以了
你的miniui版本是多少版本的?
你先从网上下载最新的miniui,更新下看看,window.Owner还会不会报错
作者: sd_tz_123    时间: 2012-10-26 17:10:22

factory 发表于 2012-10-26 16:29
我发现你的miniui、的引入还是

。。。。。

我找到了另一个解决方法通过window.showModalDialog




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2