Gwt 当用户离开GXT网格时,我可以捕获哪些事件?

Gwt 当用户离开GXT网格时,我可以捕获哪些事件?,gwt,gxt,Gwt,Gxt,我有一个广泛使用GXT(1.2.2版)网格的web应用程序。如果用户进行了更改但没有保存,我想警告用户 当我在弹出对话框中使用网格时,用户离开的唯一方式是通过按钮(关闭或确定)。如果我将SelectionListener添加到Close按钮,我可以执行“isDirty()”检查并警告用户 如果我没有使用对话框,则不存在离开页面的限制。用户可以单击侧菜单,选择不同的选项卡,点击每页上的刷新或下一页按钮。我可以听每个人的节目,但有没有更简单的方法?类似于被触发的“卸载前”事件 或在GWT 1.6中

我有一个广泛使用GXT(1.2.2版)网格的web应用程序。如果用户进行了更改但没有保存,我想警告用户

当我在弹出对话框中使用网格时,用户离开的唯一方式是通过按钮(关闭或确定)。如果我将SelectionListener添加到Close按钮,我可以执行“isDirty()”检查并警告用户

如果我没有使用对话框,则不存在离开页面的限制。用户可以单击侧菜单,选择不同的选项卡,点击每页上的刷新或下一页按钮。我可以听每个人的节目,但有没有更简单的方法?类似于被触发的“卸载前”事件

或在GWT 1.6中:

您无法阻止窗口关闭,但可以提示用户单击“取消”,这将使页面保持打开状态。您还可以在用户选择确认窗口关闭后,但在卸载页面之前执行最后一次机会保存操作。

尝试以下操作:

Window.addListener(Events.Close,
     new Listener<ComponentEvent>() {
          public void handleEvent(ComponentEvent be) {
                //Do something
          }
});
Window.addListener(Events.Close,
新侦听器(){
公共无效handleEvent(组件事件be){
//做点什么
}
});

Window.addListener(Events.Detach,
新侦听器(){
公共无效handleEvent(组件事件be){
//做点什么
}
});

我尝试了这个,但没有成功,我想是因为窗口没有关闭。我只是要转到另一个网格、选项卡或页面。我明白了。如果网格确实正在卸载,那么您唯一的希望就是将onDetach()方法挂接到小部件上。没有侦听器,因此必须在子类中重载它。如果选项卡已更改,但网格仍处于隐藏状态,则您完全不走运,必须听取所有信息。
Window.addListener(Events.Detach,
         new Listener<ComponentEvent>() {
              public void handleEvent(ComponentEvent be) {
                    //Do something
              }
    });