2012-02-17 11 views
0

Listから値を表示するためにIchoicerendererのオーバーライドされたクラスを使用しています( DropDown)。値が "-1"の場合のApache Wicket DropdownChoiceのデフォルト値の問題

cfrListは、Databaseから読み込まれたリストです。タイプ"CfrInfo"のリストです。 CfrInfoには、getCfrSubRule()およびgetCfrShortDesc()メソッドがあります。 問題は、getCfrSubRule()メソッドが-1を返すときのデフォルト値です。 通常の状況では、ページが読み込まれたときに私のドロップダウンに「選択」が選択されているように表示されます。 しかし、私のリストのように「-1」の値を持つとき、それは常に示して「-1」のデフォルト値は、すべてのヘルプはAadvanceに.Thanksを高く評価します

「一つの選択」のinstaedとして....

してください以下のコードを参照してください...

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

答えて

0

私は完全にあなたの質問を理解しています。

CfrInfo.getCfrSubRule()は-1を返すことがありますか? getIdValue()の主キーとなるものを返す必要があるため、-1を返すべきではありません。

あなたは単に項目が選択されていないとき、ドロップダウンに表示される内容を変更しようとしている一方で、あなたは、単にようなあなたのWicketApplications.propertiesファイルのプロパティのキー/値のペアを提供する必要がある場合:

yourDropDown.null = Choose One 
関連する問題