父窗口代码:

前台(test.zul)

  1. <?page title="" contentType="text/html;charset=UTF-8"?>
  2. <zk xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns="http://www.zkoss.org/2005/zul"
  4. xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul">
  5. <window id="testWin" border="none" apply="test.test19">
  6. <button id="testBtn" label="测试"/>
  7.   <label id="testLabel" value="ats了解,他不" />
  8. </window>
  9. </zk>

后台(test19.java)

  1. package test;
  2.  
  3. import java.util.HashMap;
  4. import java.util.Map;
  5.  
  6. import org.zkoss.zk.ui.Component;
  7. import org.zkoss.zk.ui.Executions;
  8. import org.zkoss.zk.ui.event.Event;
  9. import org.zkoss.zk.ui.event.EventListener;
  10. import org.zkoss.zk.ui.event.Events;
  11. import org.zkoss.zk.ui.event.ForwardEvent;
  12. import org.zkoss.zk.ui.util.GenericAutowireComposer;
  13. import org.zkoss.zul.Button;
  14. import org.zkoss.zul.Window;
  15.  
  16. public class test19 extends GenericAutowireComposer<Component>{
  17.  
  18. private static final long serialVersionUID = 1L;
  19.  
  20. private Button testBtn;
  21.  
  22. @Override
  23. public void doAfterCompose(Component comp) throws Exception {
  24. // TODO Auto-generated method stub
  25.  
  26. super.doAfterCompose(comp);
  27. testBtn.addEventListener(Events.ON_CLICK, new EventListener<Event>() {
  28.  
  29. @Override
  30. public void onEvent(Event event) throws Exception {
  31. // TODO Auto-generated method stub
  32.  
  33. Map<String, String> map = new HashMap<String, String>();
  34. map.put("messageItem", "斩.赤红之瞳");
             //map.put("testLabel",testLabel);//将控件传给子窗口进行控制
  35. String url = "Exit.zul";
  36. Window window = (Window)Executions.createComponents(url, null, map);
  37. window.doModal();
  38. window.addForward("onRefresh", self, "onKjhen");//1、3参数命名必须以on开关且第三个字母必须大写--见附图
  39.  
  40. }
  41. });
  42. }
  43.  
  44. public void onKjhen(ForwardEvent event){
  45. alert(event.getOrigin().getData().toString());
  46. }
  47.  
  48. }

附图:

子窗口代码:

前台(Exit.zul)

  1. <?page title="" contentType="text/html;charset=UTF-8"?>
  2. <zk xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns="http://www.zkoss.org/2005/zul"
  4. xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul">
  5. <window id="exitWD" title="消息提示框" border="normal" position="center,center"
  6. action="show: slideDown;hide: slideUp" width="450px" closable="true"
  7. apply="test.Exit">
  8. <div align="center">
  9. <label id="testLb"/>
  10. </div>
  11. <button id="testBtn" label="按扭"/>
  12. </window>
  13. </zk>

后台(Exit.java)

  1. package test;
  2.  
  3. import java.util.Map;
  4.  
  5. import org.zkoss.zk.ui.Component;
  6. import org.zkoss.zk.ui.Executions;
  7. import org.zkoss.zk.ui.Path;
  8. import org.zkoss.zk.ui.event.Event;
  9. import org.zkoss.zk.ui.event.EventListener;
  10. import org.zkoss.zk.ui.event.Events;
  11. import org.zkoss.zk.ui.util.GenericForwardComposer;
  12. import org.zkoss.zul.Button;
  13. import org.zkoss.zul.Label;
  14. import org.zkoss.zul.Window;
  15.  
  16. public class Exit extends GenericForwardComposer<Component>{
  17.  
  18. private static final long serialVersionUID = 1L;
  19.  
  20. Map<?, ?> map;
  21. private Label testLb;
  22. private Button testBtn;
  23. Window exitWD;
  24.  
  25. @Override
  26. public void doAfterCompose(Component comp) throws Exception {
  27.  
  28. super.doAfterCompose(comp);
  29. //获取父页面的控件
  30. Label testbox = (Label) Path.getComponent("/testWin/testLabel");//格式父窗口id+父窗口子控件id
  31. System.out.println(testbox.getValue());
  32.  
  33. map = Executions.getCurrent().getArg();
  34. if (map.containsKey("messageItem")){
  35. testLb.setValue((String)map.get("messageItem"));
  36. }
  37. else {
  38. testLb.setValue("——————————————");
  39. }
  40.  
  41. testBtn.addEventListener(Events.ON_CLICK, new EventListener<Event>() {
  42.  
  43. @Override
  44. public void onEvent(Event event) throws Exception {
  45. String abc = "testPass";
  46. Events.postEvent("onRefresh", self, abc);
  47. exitWD.detach();
  48. }
  49. });
  50. }
  51. }

ZK 父窗口与子窗口消息交互的更多相关文章

  1. windows窗口分析,父窗口,子窗口,所有者窗口

    (本文尝试通过一些简单的实验,来分析Windows的窗口机制,并对微软的设计理由进行一定的猜测,需要读者具备C++.Windows编程及MFC经验,还得有一定动手能力.文中可能出现一些术语不统一的现象 ...

  2. HTML中IFrame父窗口与子窗口相互操作

    一.Iframe篇 //&&&&&&&&&&&&&&&&&&am ...

  3. JavaScript(Iframe、window.open、window.showModalDialog)父窗口与子窗口之间的操作

    一.Iframe 篇 公共部分 //父对象得到子窗口的值 //ObjectID是窗口标识,ContentID是元素ID function GetValue(ObjectID,ContentID) { ...

  4. js window.open() 父窗口与子窗口的互相调用(未必有用)

    javascript 父窗口与子窗口的互相调用 <html> <head></head> <body> 主要实现父子关系的页面 window.opene ...

  5. 总结JavaScript(Iframe、window.open、window.showModalDialog)父窗口与子窗口之间的操作

    一.Iframe 篇 //&&&&&&&&&&&&&&&&&&a ...

  6. #js window.open() 父窗口与子窗口的互相调用【转】

    未完整版 javascript 父窗口与子窗口的互相调用 a.html 父页面 <HTML> <HEAD> <meta http-equiv="content- ...

  7. iframe父窗口和子窗口之间的调用

    1>父窗口获取子窗口 js方法 document.getElementById('if1').contentWindow.document: window.frames["if1&qu ...

  8. 总结js(Iframe、window.open、window.showModalDialog)父窗口与子窗口之间的操作

    http://hi.baidu.com/yashua839/blog/item/131fdb2fe547ef221f3089af.html一.Iframe 篇 //&&&&am ...

  9. iframe父窗口和子窗口的调用方法

    iframe 父窗口和子窗口的调用方法父窗口调用子窗口 iframe_name.iframe_document_object.object_attribute = attribute_value 例子 ...

  10. windows 编程 —— 子窗口 与 子窗口控件

    目录: 子窗口与主窗口的交互 子窗口控件 按钮类别 button 滚动条类别 scrollbar 静态类别  static 编辑框类别 edit 清单方块 listbox 子窗口与主窗口的交互 创建窗 ...

随机推荐

  1. 剑指offer系列——二维数组中,每行从左到右递增,每列从上到下递增,设计算法找其中的一个数

    题目:二维数组中,每行从左到右递增,每列从上到下递增,设计一个算法,找其中的一个数 分析: 二维数组这里把它看作一个矩形结构,如图所示: 1 2 8 2 4 9 12 4 7 10 13 6 8 11 ...

  2. Google自己的下拉刷新组件SwipeRefreshLayout

    SwipeRefreshLayout SwipeRefreshLayout字面意思就是下拉刷新的布局,继承自ViewGroup,在support v4兼容包下,但必须把你的support librar ...

  3. Liferay 6.2 改造系列之十六:关闭OpenID模式的单点登录

    在/portal-master/portal-impl/src/portal.properties文件中,有如下配置: # # Set this to true to enable OpenId au ...

  4. Liferay 6.2 改造系列之五:修改默认站点的页面内容

    相关页面可以通过/portal-master/portal-impl/src/portal.properties文件配置进行修改: 登录页: ## ## Default Landing Page ## ...

  5. .NET运用AJAX 总结及其实例

    1.AJAX简介 (1.没有AJAX会怎么样?普通的ASP.Net每次执行服务端方法的时候都要刷新当前页面,比如实现显示服务器的时间.每次都要刷新页面的坏处:页面刷新打断用户操作.速度慢.增加服务器的 ...

  6. npm 模块常用命令

    mocha mocha --compilers js:babel/register : 在babel模式下测试,默认查找test文件夹,注意此时全局不要安装babel; ./node_modules/ ...

  7. 安卓微POS-PDA手持终端,支持离线在线联网销售开单;移动开单 盘点 功能

    采购单.采购退货单  销售单.销售退货单.收款.优惠.赠品等操作实现盘点作业(多台设备同时作业,相同商品,数量累计) 现场打印票据 实现采购订单.采购单.采购退货单.销售订单.销售单.销售退货单验货没 ...

  8. 简单的jQuery扩展函数-让函数缓冲执行

    $.fn.retarder = function(delay, method) { var node = this; if (node.length) { if (node[0]._timer_) c ...

  9. NoSQL-Redis【1】-控制台配置密码

    1.设置密码为123456 CONFIG SET requirepass 123456 2.验证密码 AUTH 123456 3.redis-cli连接 @ECHO OFF redis-cli.exe ...

  10. BZOJ 1412 & 最小割

    什么时候ZJ省选再现一次这么良心的题吧... 题意: 在一个染色的格子画分割线,使其不想连,求最少的线段 SOL: 裸裸的最小割.题目要求两种颜色不想连,我们把他分到两个集合,也就是把所有相连的边切断 ...