1

如何在 ZK 中关闭窗口而不使用单击取消按钮时的窗口 ID?

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>

单击此按钮我想关闭窗口

4

2 回答 2

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
只需getParent().getParent().getParent().getParent()在 ZUL 中使用而不是mywin. 这将得到:

  • 按钮的父级:td
  • td的父母:tr
  • tr的父母table
  • 表的父级:window
于 2013-02-05T10:42:19.040 回答
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();"在窗口内添加

于 2018-04-16T20:52:14.687 回答