2

如何从 com.smartgwt.client.widgets.Window 取消关闭事件?我需要用户确认关闭窗口,我看到类 com.smartgwt.client.widgets.tab.events.TabClos​​eClickEvent 有一个取消方法来停止操作,我需要相同的 com.smartgwt.client.widgets .events.CloseClickHandler。我如何实现这个功能?

4

3 回答 3

1
public HandlerRegistration addCloseClickHandler(CloseClickHandler handler)

处理单击此窗口的关闭按钮。默认实现隐藏窗口并返回 false 以取消冒泡。如果您希望执行其他操作,请覆盖此方法。

于 2012-06-06T16:32:14.190 回答
0

在您的窗口对象中

    myWindowObject.addCloseClickHandler(new CloseClickHandler() {  
            public void onCloseClick(CloseClickEvent event) {  

                    //Do whatever

                    if(IHaveTOCancel){
                            event.cancel();
                    }
                }  
            });
于 2015-12-03T09:14:25.600 回答
0

我发现如果您不立即取消事件(因为它正在等待用户输入),那么窗口无论如何都会关闭。如果您需要等待用户输入,这是我发现的有效方法。

window.addCloseClickHandler(new CloseClickHandler() {
        @Override
        public void onCloseClick(CloseClickEvent event) {
            event.cancel();
            StringBuilder b = new StringBuilder();
            b.append("<BR>");
            b.append("Are you sure you want to close?");
            SC.ask("Close", b.toString(), new BooleanCallback() {
                @Override
                public void execute(Boolean value) {
                    if (value) {
                        window.close();
                    } 
                }
            });
        }
    });
于 2017-02-18T14:10:57.880 回答