Как я могу передать событие onCheck Checkbox его родителю в zk? - PullRequest
1 голос
/ 24 октября 2019

У меня есть vbox с некоторыми флажками, например:

<vbox id="myVbox" apply="org.zkoss.bind.BindComposer"
   viewModel="@id('vm') @init('my.checkbox.group.CheckboxGroupViewModel', outerVM=wvm, component=self)">
   <checkbox id="1"/>
   <checkbox id="2"/>
   <checkbox id="3"/>
</vbox>

Есть ли способ заставить vbox среагировать на какое-либо из его дочерних событий onCheck?

Редактировать:

vbox - это часть окна, в котором есть его view-модель. В нем есть следующий код для динамического добавления радиостанций:

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

Родительская переменная представляет vbox. Модель представления vbox содержит метод onSelectionChange. Но, кажется, никогда не звонят.

Ответы [ 2 ]

1 голос
/ 25 октября 2019

Вы можете попробовать это:

<vbox onSelectionChange="@command('METHODNAME_TO_IMPLEMENT_EVENT')"/>
1 голос
/ 24 октября 2019

Как вы хотите, чтобы это отреагировало? Вы можете сделать что-то вроде:

<vbox id="myVbox">
    <checkbox id="1" onCheck="myVbox.visible=false"/>
    <checkbox id="2"/>
    <checkbox id="3"/>
</vbox>
...