如何在点击取消按钮时不使用窗口ID关闭ZK中的窗口?
zul文件的一些代码
<window apply="org.zkoss.bind.BindComposer" width="700px"
height="500px" title="ReDefault Folder" mode="modal" border="normal"
closable="true"
viewModel="@id('vm') @init('web.viewmodel.FolderRedefaultViewModel')" visible="@load(vm.showDialog)">
<x:table border="0" align="right">
<x:tr>
<x:td align="right" width="20px">
<button label="OK" width="80px"
onClick="@command('insertDefaultOnOk')">
</button>
</x:td>
<x:td align="left">
<button label="Cancle" width="80px"
onClick="@command('nOk')">
</button>
</x:td>
</x:tr>
</x:table>
</window>
单击此按钮我想关闭窗口
答案 0 :(得分:6)
你可以试试这个:
1.给你的窗口一个id:<window id="mywin"...
2.将onClick添加到您的按钮:<button onClick="mywin.detach()"...
或者,如果您想从您的命令处理程序执行此操作,请将窗口作为参数传递:
1. <window id="mywin"...
2. <button onClick="@command('test', cmp=mywin)"
3。
@Command
public void test(@BindingParam("cmp") Window x) {
x.detach();
}
或未分配ID :
只需在ZUL中使用getParent().getParent().getParent().getParent()
而不是mywin
。这将得到:
td
tr
table
window
答案 1 :(得分:0)
基本上可以通过写在
内来完成<window apply="org.zkoss.bind.BindComposer" width="700px"
height="500px" title="ReDefault Folder" mode="modal" border="normal"
closable="true"
viewModel="@id('vm') @init('web.viewmodel.FolderRedefaultViewModel')" visible="@load(vm.showDialog)">
这样:
<window apply="org.zkoss.bind.BindComposer" width="700px"
height="500px" title="ReDefault Folder" mode="modal" border="normal"
closable="true"
viewModel="@id('vm') @init('web.viewmodel.FolderRedefaultViewModel')" visible="@load(vm.showDialog)" onCancel="self.detach();">
简单来说,只需在窗口
中添加onCancel="self.detach();"
即可