Как я могу отправить событие от компонента к его родителю несколько раз? - PullRequest
2 голосов
/ 29 октября 2019

Я основываюсь на своем предыдущем вопросе, опубликованном здесь :

У меня есть 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 может отображаться несколько раз. В первый раз событие onSelectionChange правильно запускается и перехватывается компонентом vbox. Таким образом, onChange правильно вызывается. Однако при второй загрузке компонента событие вызывается флажками, но не перехватывается vbox.

Я экспериментировал как с postEvent, так и с sendEvent. В любом случае событие неправильно перенаправляется на родительский vbox. У кого-нибудь есть идеи, почему это так?

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 01 ноября 2019

Я подготовил работающий пример (на основе того, что я понял из ваших описаний), который работает ... http://zkfiddle.org/sample/51j1be/1-wizard-checkboxes-custom-events

Возможно, это поможет в качестве шаблона для вашего сценария. Если нет, вы можете настроить и сохранить его, чтобы показать свою проблему. Так что я могу взглянуть по-другому.

...