Button小部件的ZK setLabel()函数不起作用;当代码像foobutton.setLabel(mystring)一样运行到该行时,该按钮将从浏览器中消失。
在eclipse 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我在上面的网站链接中尝试了“指定您自己的小组件类”部分,但浏览器将处于待处理状态。
请帮忙,谢谢。
我宁愿采用不同的方法。
为什么不使用
<button label="@load(vm.xyz)" ... />
(我用MVVM模式编写)并在点击动作中修改变量xyz?
查看http://books.zkoss.org/zk-mvvm-book/8.0/syntax/load.html实施指南。