2011-06-11 96 views
0

是一個新手門,我正在試驗一些東西,比如,我有四個面板,但只能根據DropdownChoice組件中的選擇添加一個面板。 我試圖使用onSelectChange()方法添加面板,但它不起作用。任何人都可以幫我拿出適當的樣本代碼。基於DropdownChoice選擇的動態添加面板

回答

5

我給你一個這個問題的例子。希望能幫助到你。

DropDownChoice dropDown = new DropDownChoice(...........); 
    AjaxFormComponentUpdatingBehavior behavior = new AjaxFormComponentUpdatingBehavior(
          "onchange") { 

       @Override 
      protected void onUpdate(AjaxRequestTarget target) { 
        //you should write here the logic that 
       // replaces the panel, something like: content.addOrReplace(panel) 

       target.addComponent(form); 
      } 
    }; 
    dropDown.add(behavior); 

所以,這一切,你必須使用AjaxFormComponentUpdatingBehavior處理onchange事件。如果下拉菜單不是必需的,則可以使用tabbedpanel。在這裏您可以找到示例代碼:wicket tabbed panel

+0

在大多數情況下,只需更改這些面板的可見性而不是添加或刪除它們應該更容易。但總的來說,這應該是一條路。 – Nicktar 2011-06-14 10:53:42

+0

我正在使用五個面板並在每個面板上設置可見性會添加更多代碼。但我嘗試了上述解決方案。但我得到空指針異常,因爲下拉列表中的第一個選項將爲空值。我甚至將能見度關閉,但它仍會引發相同的異常。仍在嘗試處理這個 – Vijayakumar 2011-07-02 16:48:54

+0

@lepike:謝謝。該解決方案工作,我使用頁面加載EmptyPanel,來處理該空指針異常。 – Vijayakumar 2011-07-14 07:04:12