我如何多次将事件从组件发送到其父组件?

问题描述 投票:2回答:1

我是基于我先前发布的问题here

我有一个vbox,其中包含一些复选框,这些复选框由整个窗口的视图模型动态添加。视图模型将侦听器注册到复选框的onCheck事件,如下所示:

if (childName.equals("org.zkoss.zul.Checkbox")) {
    child.addEventListener(1000,"onCheck", new EventListener<Event>() {
        @Override
        public void onEvent(Event event) throws Exception {
            Events.postEvent(1000,"onSelectionChange",parent,null);                     
        }                       
    });
}

onSelectionChange事件被捕获在父vbox中,如下所示:

<vbox onSelectionChange="@command('onChange', component=self, finishButton=finish)"/>

整个vbox组件是向导的一部分,该向导允许在其页面之间来回移动。因此,vbox组件可以显示多次。第一次,onboxionChange事件被vbox组件正确触发并捕获。因此,onChange被正确调用。但是,第二次加载该组件时,该事件由复选框触发,但未被vbox捕获。

我已经尝试过postEvent和sendEvent。在任何情况下,该事件均不会正确转发到父vbox。有谁知道为什么会这样吗?

感谢您的帮助!

java zk
1个回答
0
投票

我准备了一个可运行的示例(基于我从您的描述中所了解的内容),该示例可以工作...http://zkfiddle.org/sample/51j1be/1-wizard-checkboxes-custom-events

也许可以作为您的方案的模板。如果没有,您可以调整并保存以显示您的问题。所以我可以再看看。

© www.soinside.com 2019 - 2024. All rights reserved.