2011-08-30 65 views
3

我写了一个支持文件/图像上载的面板。所以面板是一个简单的简单形式。该面板在正常的Wicket页面中工作。检票口:在模态窗口中形成

我想现在要做的事: 我想在模态窗口中使用面板。面板显示正确。但是,当我提交/上传新文件时,我的浏览器会提示我是否想离开该页面。包含模态窗口DIV的页面本身就是一个表单。

我的研究没有发现关于模态窗口中的窗体的任何有趣信息,期望它必须是自包含的(嵌套窗体)。我认为这个先决条件得到满足。

有没有可用的信息,我做错了什么?任何教程?

回答

2

正如Martijn指出的那样,模式窗口依赖于AJAX通信。因此请使用AjaxSubmitButton或同等产品。在提交模态窗口后需要更新主窗口中的组件时,可以将它们添加到AjaxRequestTarget

但是,当涉及到多部分窗体(文件上传)时,这并不适用。显然多部分不能很好地与AJAX一起玩。正如所指出的那样,人们必须做IFrame技巧。这里:http://www.dooriented.com/blog/2008/04/23/wicket-ajax-like-file-upload-on-a-modal-window/

3

您需要使用AjaxSubmitButton(或AjaxSubmitLink)才能提交表单。问题在于模态窗口需要Ajax通信。如果您使用该窗口重新处理整个页面而不关心Ajax,则可以覆盖ModalWindow#getCloseJavaScript()方法。

+0

是的完全正确。 AjaxSubmitButton为普通(非多部分)表单做了诀窍。但是,多部分和AJAX不能一起玩。所以整个上传是另一个问题... – spa