2012-02-17 46 views
0

我正在使用Ichoicerenderer的覆蓋類來顯示List中的值 DropDown。當值爲「-1」時,Apache Wicket DropdownChoice默認值問題

cfrList是從數據庫填充的列表。它是類型列表「CfrInfo」。 CfrInfo有getCfrSubRule()和getCfrShortDesc()方法。 問題是,當我的getCfrSubRule()方法返回-1時的默認值。 在正常情況下,默認情況下,我的下拉菜單顯示頁面加載時選擇的「選擇一個」。 但是,當我的列表中有值「-1」,它總是顯示「-1」作爲默認值instaed的「二選一」

任何幫助將讚賞.Thanks在Aadvance ....

請請參閱下面的代碼...

dropDown = new DropDownChoice("subRuleCode",new PropertyModel(
        inspectionid,"subRuleInfo"),cfrList,new IChoiceRenderer(){ 
     private static final long serialVersionUID = 1L; 
     public Object getDisplayValue(Object object) 
     { 
      CfrInfo info = (CfrInfo) object; 
      StringBuffer value = new StringBuffer(); 
      value.append(info.getCfrShortDesc()); 
      value.append("("); 
      value.append(info.getCfrSubRule()); 
      value.append(")"); 
      return value.toString(); 
     } 
     public String getIdValue(Object object, int index) 
     { 
      if (object instanceof CfrInfo) { 
       CfrInfo info = (CfrInfo) object; 
       return info.getCfrSubRule(); 
      } 
      return (String)object; 
     }   
    } 
    ); 
+0

組件呈現前'subRuleInfo'字段中的內容是什麼? – biziclop 2012-02-18 14:28:30

回答

0

不知道我完全理解你的問題。

你是說CfrInfo.getCfrSubRule()有時會返回-1?您需要返回getIdValue()的主鍵,因此您不應該返回-1。

如果在另一方面,你僅僅是想沒有選擇項目時要改變什麼顯示在下拉菜單中,你只需要提供一個屬性鍵/值對在您的WicketApplications.properties文件,如:

yourDropDown.null = Choose One