起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 17061|回复: 10

主窗体和弹出窗体数据交互

  [复制链接]

4

主题

87

帖子

195

积分

初级会员

Rank: 2

积分
195
QQ
发表于 2013-8-8 14:42:40 | 显示全部楼层 |阅读模式
本帖最后由 hehongbo 于 2013-8-9 09:50 编辑

一.先选定要设置为主窗口的界面,放入windowDialog弹出窗体组件。
二.选定作为弹出窗口的界面,放入windowReceiver窗体接收组件
三. 调用windowDialog弹出窗体组件的open方法,并给弹出窗体传参。
四.用windowReceiver窗体接收组件的onReceive事件接收主窗口传回来的参数。
五.调用windowReceiver组件的windowEnsure方法,并给主窗体传参。
六.用windowDialog组件的onReceive事件,接收弹出窗体给主窗体传回来的参数。
七.具体实现主窗体和弹出窗体数据交互步骤如下
1.先设置windowDialog组件的title和url属性,然后调用open方法打开弹出窗口。
例如:title设置为单选模板
      url设置为/UI/SuccessMan/GoodUnit/process/level/mainActivity.w(弹出窗口路径)
      在主窗口打开弹出窗口的按钮的onClick事件中,加入以下代码:
        mainActivity.trigger6Click = function(event){
                 justep.xbl("windowDialog1").open('a'); //open方法里边的第一个参数即主窗体需要传给弹出窗口的参数
       };
                                   
2.在弹出窗口中创建windowReceiver窗体接收组件,用windowReceiver组件的onReceive事件接收主窗口传回来的参数,代码如下:
       mainActivity.windowReceiver1Receive = function(event){
                          alert(event.data);//主窗口传来的数据
      };
      
3.设置关闭弹出窗口确定和取消按钮,并在关闭窗口确定按钮的onClick事件中加入如下代码:
       mainActivity.EnsureClick = function(event){
                //调用windowReceiver组件的windowEnsure方法,并将要返回的参数作为windowEnsure方法的参数调用。
               justep.xbl.('windowReceiver1').windowEnsure('b');
      };
      取消按钮onClick事件中加入如下代码:
     mainActivity.trigger2Click = function(event){
           //调用windowReceiver组件的windowCancel方法,仅关闭窗口,无返回参数。
            justep.xbl('windowReceiver1').windowCancel();
     };
4.用windowDialog组件的onReceive事件,接收弹出窗体给主窗体传回来的参数,代码如下:
     mainActivity.windowDialog1Receive = function(event){
             alert(event.data);//弹出窗体传回的参数。
      };   
点击关闭弹出窗体确认按钮,主窗体得到弹出窗口传回的参数 ,点击关闭弹出窗体取消按钮,则直接关闭主窗体。
   注意:要往主窗口传参需在弹出窗口加按钮, 并调用windowReceiver组件的windowEnsure方法。
远程的联系方法 QQ 2747052626。添加好友时,需要填写论坛账号
发远程时同时也发一下
发表于 2013-8-9 10:07:16 | 显示全部楼层

RE: 主窗体和弹出窗体‘数组’数据交互

本帖最后由 liangyongfei 于 2013-8-9 11:27 编辑

1,主窗口传数组给弹出窗口
首先在主窗口拖入windowDialog组件和一个trigger按钮,如图:
8XU$NQ_GI{53K5S_EVA4(BR.jpg 90CT3079TVF}JU@7G{_)E_B.jpg
给windowDialog组件的url属性赋值,制定弹出的页面,是一个w文件,如图:
{7D2MP4SP]1GY@3JI%IWWI6.jpg
然后在按钮的点击事件中写如下代码:
  1. var mycars=new Array("aaa","bbb","ccc");
  2. //通过id找到windowDialog组件的对象,然后通过它的open方法将数组传出
  3. justep.xbl("windowDialog1").open(mycars);
复制代码
2,弹出窗口接收主窗口传过来的数组。
首先在弹出窗口中拖入一个windowReceiver组件,图:
6)2S8~3WTLK$Y0I__%_X}VW.jpg
在它的onReceive事件方法中代码如下
  1. var Grade = {};
  2. //定义一个js数组,
  3. var mycars = new Array(3);
  4. //onReceive事件的执行方法,用于接收主窗口传来的数据
  5. Grade.windowReceiver1Receive = function(event){
  6. //将主窗口传来的数据赋值给一个数组
  7.         mycars = event.data;
  8. //弹出数据
  9.          alert('主窗口传来的数据为'+mycars[0]+','+mycars[1]+','+mycars[2]);//主窗口传来的数据
  10. };
复制代码
结果如图:
{X25H3EFK9_9IW6SWKGMBRP.jpg
3弹出窗口传值给主窗口。
首先在弹出窗口拖入一个trigger按钮,在它的点击事件中写如下代码:
  1. mycars[0] = 'DDD';
  2.         mycars[1] = 'EEE';
  3.         mycars[2] = 'FFF';
  4. //通过id得到windowReceiver组件的一个对象,调用它的方法将数据传到主窗口。
  5.           justep.xbl('windowReceiver1').windowEnsure(mycars);
复制代码
4,主窗口接收传回的值。
选中windowDialog组件,为它的onReceive事件写方法,图:
2OK]XY(~9H@%`ZEH@E6CA]O.jpg
代码如下:
  1. JLType.windowDialog1Receive = function(event){
  2. //弹出传回的数据
  3. alert('弹出窗口传来的数据为'+event.data[0]+','+event.data[1]+','+event.data[2]);//弹出窗体传回的参数。
  4. };
复制代码
在弹出窗口点击按钮,结果如图:
N@)ZZGM$DX9`OYY9C(Y0U9R.jpg
qq:1912779713
WeX5教程--WeX5下载
发表于 2013-8-9 11:26:17 | 显示全部楼层

RE: 主窗体和弹出窗体’对象‘和’json‘数据交互

本帖最后由 liangyongfei 于 2013-8-9 11:45 编辑

本例子图和上楼一样,不再重复。
1,主窗口传递data对象给弹出窗口。
首先在主窗口拖入windowDialog组件和一个trigger按钮,

给windowDialog组件的url属性赋值,制定弹出的页面,是一个w文件,

然后在按钮的点击事件中写如下代码:
  1. var data = justep.xbl('dataMain');
  2. //将data对象传递给弹出窗口
  3.            justep.xbl("windowDialog1").open(data);
复制代码
2弹出窗口接收data对象。
首先在弹出窗口中拖入一个windowReceiver组件

在它的onReceive事件方法中代码如下
  1. var data = null;
  2. //事件方法主体
  3. Grade.windowReceiver1Receive = function(event){
  4.         //赋值
  5. data= event.data;
  6. //得到data对象’fTname‘列的前四行数据
  7. var row1 = data.getValue('fTname',data.getID(0));
  8. var row2 = data.getValue('fTname',data.getID(1));
  9. var row3 = data.getValue('fTname',data.getID(2));
  10. var row4 = data.getValue('fTname',data.getID(3));
  11.         
  12. alert('主窗口传来的数据为'+row1+','+row2+','+row3+','+row4);
复制代码
结果如图:
CP@R9]T%2]1QPK%V8EBAJE3.jpg
3.弹出窗口用json传递数据给主窗口。
首先在弹出窗口拖入一个trigger按钮,在它的点击事件中写如下代码:
  1. var jsonData = {"row1":data.getValue('fTname',data.getID(0)),
  2.                          "row2":data.getValue('fTname',data.getID(1)),
  3.                          "row3":data.getValue('fTname',data.getID(2)),
  4.                          "row4":data.getValue('fTname',data.getID(3))
  5.          };
  6. //传递给主窗口
  7.          justep.xbl('windowReceiver1').windowEnsure(jsonData);
复制代码
4,主窗口接收传回的值。
选中windowDialog组件,为它的onReceive事件写方法,

代码如下:
  1. alert('弹出窗口传来的数据为 :'+event.data.row1+','+event.data.row2+','+event.data.row3+','+event.data.row4);
复制代码
在弹出窗口点击按钮,结果如图:
4[QBG5[UTZ0LXCED4S5)ASK.jpg
qq:1912779713
WeX5教程--WeX5下载

21

主题

109

帖子

264

积分

中级会员

Rank: 3Rank: 3

积分
264
QQ
发表于 2013-9-3 09:25:49 | 显示全部楼层
如果windowDialog关联的文件是一个html文件,不能放入windowReceiver组件,要怎么接受参数呢,想要得到类似于windowReceiver的结果

4

主题

87

帖子

195

积分

初级会员

Rank: 2

积分
195
QQ
 楼主| 发表于 2013-9-4 09:06:44 | 显示全部楼层
远程的联系方法 QQ 2747052626。添加好友时,需要填写论坛账号
发远程时同时也发一下

3

主题

39

帖子

182

积分

初级会员

Rank: 2

积分
182
发表于 2013-12-30 14:59:46 | 显示全部楼层
谢谢。

12

主题

77

帖子

263

积分

中级会员

Rank: 3Rank: 3

积分
263
QQ
发表于 2014-5-9 16:31:45 | 显示全部楼层
学习了,谢谢!

53

主题

313

帖子

1134

积分

金牌会员

Rank: 6Rank: 6

积分
1134
QQ
发表于 2014-12-3 10:22:54 | 显示全部楼层
好啊,非常好!

1

主题

5

帖子

19

积分

新手上路

Rank: 1

积分
19
QQ
发表于 2016-2-15 15:28:56 | 显示全部楼层
浏览器代码报错  justep.xbl is not a function   不是一个函数

75

主题

486

帖子

862

积分

高级会员

Rank: 4

积分
862
QQ
发表于 2016-12-1 15:14:02 | 显示全部楼层
http://bbs.justep.com/thread-49855-1-1.html
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-3-29 21:55 , Processed in 0.095059 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表