首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZK -调用包含的子页的ZScript函数

ZK -调用包含的子页的ZScript函数
EN

Stack Overflow用户
提问于 2012-01-24 00:30:10
回答 3查看 2.5K关注 0票数 1

比方说,我有一个zul页面(page1.zul),如下所示:

代码语言:javascript
复制
<zk>
  <textbox id="textbox1" ></textbox>
  <button label="Display" onClick="display()" ></button>
  <include id="include1" ></include>
<zscript>
  display() {
    include1.setSrc("page2.zul");
    java.lang.Class[] argTypes = new java.lang.Class[]{String.class};
    org.zkoss.xel.Function fn = include1.getChildPage().getZScriptFunction("doDisplay", argTypes);
    fn.invoke(null, textbox1.value);
  }
</zscript>
</zk>

但是,我得到了一个错误-“尝试对空值调用方法getZScriptFunction”。因此,include1.getChildPage()返回一个空值,即我不能使用getChildPage()检索"page2“,并且我不确定如何处理它。

我的第二个页面如下所示:(page2.zul)

代码语言:javascript
复制
<zk>
  <label id="label1" ></label>
<zscript>
  doDisplay(String value) {
    label1.setValue(value);
  }
</zscript>
</zk>

如果我在文本框中输入内容并单击"Display“按钮,我希望将不同页面(即page2)中的label的值设置为文本框中的值。其思想是将组件的值从一个页面传递到另一个包含的页面的zscript函数。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-25 20:44:32

您可以这样做,而不是传递值。

在Page2.zul

代码语言:javascript
复制
 <zk>
      <label id="label1" ></label>
    <zscript>
      doDisplay(String value) {
         Textbox textbox=(Textbox)((Include)label1.getSpaceOwner()).getSpaceOwner().getFellowIfAny("textbox1");
         label1.setValue(textbox.getValue());
      }
    </zscript>
    </zk>
票数 1
EN

Stack Overflow用户

发布于 2012-12-07 12:46:40

您可以按如下方式更改file1:

代码语言:javascript
复制
<zk>
  <textbox id="textbox1" ></textbox>
  <button label="Display" onClick="display()" ></button>
  <!-- <include id="include1" ></include> -->
  <div id="include"></div>
<zscript>
  display() {
    include.appendChild(Executions.createComponents("page2.zul", include, null));
  }
</zscript>
</zk>
票数 1
EN

Stack Overflow用户

发布于 2012-02-04 15:02:41

我的建议是使用EventQueue来防止两个zul文件的耦合。

更多细节,请参考示例代码。http://zkfiddle.org/sample/379s7ev/3-A-sample-for-using-Event-queue-to-talk-with-other-include

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8975024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档