ZK 8.5.0 как переопределить виджет кнопки функцией setLabel - PullRequest
0 голосов
/ 18 февраля 2019

Функция ZK setLabel () для виджета Button не работает;когда код запускается в строку, такую ​​как foobutton.setLabel (mystring), кнопка исчезает из браузера.

В IDE затмения, если я наведите курсор мыши на функцию setLabel (), IDE отобразит это сообщение:

Если метка изменена, весь компонент недействителен. Таким образом, для интеллектуального обновления необходимо переопределить этот метод.

Использование ZK 8.5.0

Внутри класса контроллера я объявляю:

 @Wire
 Button delSelectedMonitor;

Внутри контроллера я реализую класс, который реализует EventListener:

public class onClickHolderEditMode implements EventListener{

    public void onEvent(Event event) throws Exception {
        clickedDivEditMode = (Div) event.getTarget();
        clickedDivIdEditMode = clickedDivEditMode.getId().split(myUtil.monitorholderString)[1];

        String curName = getCamNameById(clickedDivIdEditMode);
        delSelectedMonitor.setLabel("DELETE:"+clickedDivIdEditMode+","+curName);
    }


}

привязка события:

tmpdiv.addEventListener("onClick",  new onClickHolderEditMode());

Я ожидаю, что когда кто-то нажмет на tmpdiv, кнопка delSelectedMonitor изменит свою метку в соответствии со свойством tmpdiv.Однако, как я уже говорил ранее, кнопка просто исчезает.

https://www.zkoss.org/wiki/ZK_Client-side_Reference/General_Control/Widget_Customization Я пробовал раздел "Укажите свой собственный класс виджетов" по ссылке выше на веб-сайте, но браузер будет в ожидании.

Пожалуйста, помогите, спасибо.

1 Ответ

0 голосов
/ 18 февраля 2019

Я бы предпочел другой подход.

Почему бы не использовать

<button label="@load(vm.xyz)" ... />

(я написал с использованием шаблона MVVM) и изменить переменную xyz в действии нажатия?

Проверьте http://books.zkoss.org/zk-mvvm-book/8.0/syntax/load.html для руководства по внедрению.

...