Button widget 的 ZK setLabel() 函数不起作用;当代码运行到像 foobutton.setLabel(mystring) 这样的行时,按钮就会从浏览器中消失。
在 Eclipse IDE 中,如果我将鼠标悬停在 setLabel() 函数上,IDE 会显示以下消息:
If label is changed, the whole component is invalidate.Thus, you want to smart-update, you have to override this method.
使用ZK 8.5.0
在 Controller 类中,我声明:
@Wire
Button delSelectedMonitor;
在 Controller 内部,我实现了一个实现 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);
}
}
事件绑定(bind):
tmpdiv.addEventListener("onClick", new onClickHolderEditMode());
我的期望是,当有人单击 tmpdiv 时,delSelectedMonitor 按钮将根据 tmpdiv 的属性更改其标签。然而,正如我之前所说,该按钮正在消失。
https://www.zkoss.org/wiki/ZK_Client-side_Reference/General_Control/Widget_Customization 我已尝试上述网站链接中的“指定您自己的小部件类”部分,但浏览器将处于等待状态。
请帮忙,谢谢。
最佳答案
我更喜欢不同的方法。
为什么不使用
<button label="@load(vm.xyz)" ... />
(我使用MVVM模式编写)并在点击操作中修改变量xyz?
查看http://books.zkoss.org/zk-mvvm-book/8.0/syntax/load.html用于实现指南。
关于java - ZK 8.5.0如何重写按钮小部件setLabel函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54739351/