小门-确认面板上的替换/移除以保存未保存的数据



我有一个Wicket SPA web应用程序,我希望用户确认在面板面板上更换/删除他想要在面板中输入的数据保存或不?我的应用结构是这样的

<body>
 <nav>
  <a wicket:id="home">Home</a>
  <a wicket:id="documents">Documents</a>
  <a wicket:id="user">Users</a>
  <a wicket:id="logout">Logout</a>
 </nav>
 <main wicket:id="panel"></main>
</body>

现在有一个addDocumentPanel被替换成wicket:id='panel'时,用户单击某处"添加新文档"。在这个面板中,用户必须填写公式中的几个字段。现在,当用户点击Home时,addDocumentPanelhomePanel取代。当发生这种情况时,我想询问用户是否要保存未保存的数据。

一个很好的地方做它固体是Panel的onRemove()函数,但在这里我没有任何AjaxRequestTarget或其他东西通过JavaScript或wickets ModalWindow问用户。

你知道怎么做吗?

为所有导航链接添加一个行为,当单击该行为时,执行一个简单的逻辑,检查表单是否包含任何脏(未保存)数据。我想这可以在客户端完成,而不需要服务器往返,并且在发现表单不干净时,可以显示一个窗口。给用户的警告对话框。

一个更重的方法是使用你自己的AjaxLink子类的导航链接,并在onClick(AjaxRequestTarget目标)处理程序做ModalWindow魔术。然而,这会导致您的链接包含不可书签的url。如果这不是一个问题(这是一个内部应用程序,而不是面向internet的网站),那么这也可以工作。

最新更新