2015-07-20 89 views
0

我是新來的檢票框架, 我的要求如下。 在表單中,我需要顯示2個單選按鈕(通過使用RadioGroup或RadioChoice)和下拉列表。 爲單選按鈕,只需要命名,顯示/隱藏。 當我點擊顯示/隱藏時,響應沒有迴應。 這裏是我的代碼, 的Java,無法根據所選單選按鈕顯示/隱藏下拉菜單

private DropDownChoice<String> ddc; 
private RadioChoice<String> radioChoice; 
private String selected; 

/* creating a radio choice */ 
     List<String> options = new ArrayList(); 
     options.add("show"); 
     options.add("hide"); 

     radioChoice = new RadioChoice("group", new 

PropertyModel<String>(this, "selected"), options) { 
      @Override 
      public void onSelectionChanged() { 
       // super.onSelectionChanged(); 
       // if ("show".equals(getValue())) { 
       // ddc.setVisible(true); 
       // } 
       // if ("hide".equals(getValue())) { 
       // ddc.setVisible(false); 
       // ddc.clearInput(); 
       // ddc.detach(); 
       // ddc.remove(); 

       ddc.setEnabled(false); 
       // } 

      } 
     }; 


     add(radioChoice); 

     /* creating a drop down list */ 
     List<String> mobiles = new ArrayList(); 

     mobiles.add("LG"); 
     mobiles.add("oppo"); 
     mobiles.add("oneplus"); 

     ddc = new DropDownChoice("mobiles", mobiles); 
     ddc.setOutputMarkupId(true); 
     add(ddc); 

HTML代碼,

<span wicket:id="group"></span><br/> 
      <select wicket:id="mobiles"></select> 

,但它不工作, 我需要點擊1個單選按鈕來顯示下拉列表中,和其他隱藏dropown 。

回答

1

您還需要在您的RadioChoice中覆蓋wantOnSelectionChangedNotifications()並返回true。否則,將不會生成用於調用onSelectionChanged()的JavaScript。

有一點要考慮:由於在重新加載頁面使用onSelectionChanged()結果,你可以嘗試,而不是增加一個AjaxFormChoiceComponentUpdatingBehavior您RadioChoice,使點擊單選按鈕之一,當只有你DropDownChoice得到更新:

radioChoice.add(new AjaxFormChoiceComponentUpdatingBehavior() { 
    @Override 
    protected void onUpdate(AjaxRequestTarget target) { 
     /* Your code here */ 

     // Add DropDownChoice to the Ajax Response 
     target.add(ddc); 
    } 
});