2016-07-26 81 views
-1

我有一個ModalWindow,它有一個窗體,它有一個TabbedPanel,它有兩個AbstractTabs,每個窗體上都有一個DataTable,並帶有輸入元素。Wicket表單缺少提交數據

所以:ModalWindow>表格> TabbedPanel - > TAB1(面板)>數據表(有兩個標籤)

內ModalWindow,我添加到窗體3個按鈕,如下所示:

// save button 
    final GbAjaxButton save = new GbAjaxButton("save") { 
     private static final long serialVersionUID = 1L; 

     @Override 
     public void onSubmit(final AjaxRequestTarget target, final Form<?> form) { 
      System.out.println("Saving something... "); 
     } 
    }; 

我可以看到通過POST發送到後端的數據,但我似乎無法訪問DataTable中的任何字段。

的代碼中的一些部分是:

tabA = new AbstractTab("Tab Name") { 
    public Panel getPanel() { 
     return new SomeNewPanel(panelId,<somedata>); // <-- this has the DataTable with inputs 
    } 
} 
Form form = new Form("formNameInHtml"); 
form.add(new TabbedPanel("htmlName", tabs); 

我會很感激在這個問題上的一些見解。

謝謝。

+1

@ martin-g我會停止使用Stack Overflow,因爲像你的那樣構造和無用的觀察。我厭倦了所有認爲自己知道並批評合法問題的人。忙起來。 – Fer

+0

'我可以看到數據通過POST發送到後端,但我似乎無法訪問DataTable中的任何字段。「 - 這對我來說是無意義的。它需要澄清。您既不告訴我們表單組件模型的類型,也不告訴我們如何嘗試讀取onSubmit()中的POST數據。 –

回答

1

ModalWindow javadoc,「如果你想使用模態窗口組件中的窗體,確保你把窗體本身設置爲另一種形式(嵌套窗體在Wicket中是合法的),窗體之前的窗體被提交關閉。「

Wicket會自動在模態窗口外添加一個窗體,所以如果你想使用第二個窗體,你應該覆蓋org.apache.wicket.markup.html.form.Form#isRootForm(),並讓它返回true。

+0

你好@atha,謝謝,但標記確實嵌入在子表單中。問題最終成爲標記本身的標識。 Wicket的前端Ajax提交了錯誤的輸入。真的很少見。 – Fer