2011-08-30 63 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