2012-02-17 6 views
0

Я использую класс переопределения Ichoicerenderer для отображения значений из списка в DropDown.Apache Wicket DropdownChoice default value issue when value is "-1"

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

ответ

0

Не уверен, что я полностью понимаю ваш вопрос.

Вы говорите, что CfrInfo.getCfrSubRule() иногда возвращает -1? Вам нужно будет вернуть что-то, что фактически является первичным ключом для getIdValue(), поэтому вам не следует возвращать -1.

Если с другой стороны, вы просто пытаетесь изменить то, что отображается в раскрывающемся списке, если не выбран ни один элемент, вам просто нужно, чтобы обеспечить пару ключей свойства/значения в файле WicketApplications.properties как:

yourDropDown.null = Choose One