【问题标题】:Wicket: Form in a modal windowWicket:模式窗口中的表单
【发布时间】:2011-08-30 07:26:32
【问题描述】:

我编写了一个支持文件/图像上传的面板。所以面板是一个简单的普通形式。该面板在正常的 Wicket 页面中工作。

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

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

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

【问题讨论】:

    标签: forms modal-dialog wicket


    【解决方案1】:

    您需要使用AjaxSubmitButton(或AjaxSubmitLink)来提交您的表单。问题是模式窗口需要 Ajax 通信。如果您使用窗口只是重新处理整个页面并且不关心 Ajax 性,那么您可以覆盖 ModalWindow#getCloseJavaScript() 方法。

    【讨论】:

    • 是的,完全正确。 AjaxSubmitButton 为普通(非多部分)表单提供了诀窍。然而,multipart 和 AJAX 并不能开箱即用。所以整个上传是另一个问题...
    【解决方案2】:

    正如 Martijn 所指出的,模态窗口依赖于 AJAX 通信。所以使用AjaxSubmitButton 或等价物。当模态窗口提交后需要更新主窗口中的组件时,可以通过将它们添加到AjaxRequestTarget来完成。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-04
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多