2013-04-19 4 views
1

У меня есть SelectItem, который извлекает данные из базы данных. Мне нужно добавить пустой элемент в мой элемент.smartgwt SelectItem с пустым значением

Мой код выглядит так, и это отлично работает.

SelectItem editor = new SelectItem(...);  
editor.setOptionDataSource(new DataAllowableValuesDS('data id for database request')); 

, но после того, как я изменил его на код ниже, START_ROW и END_ROW поля в HttpServletRequest было изменено на «-1». Как я могу это решить?

SelectItem editor = new SelectItem(...); 
editor.setAllowEmptyValue(true); 
editor.setOptionDataSource(new DataAllowableValuesDS('data id for database request')); 

public DataAllowableValuesDS(String id) {   
    DataSourceField nameField = new DataSourceTextField("name", null, 2000); 
    nameField.setPrimaryKey(true); 
    setFields(nameField); 
} 

ответ

1

Настроена valueField (="name") и displayField для SelectItem?
Эти атрибуты позволяют DataSource отображать результаты в SelectItem.

Одна вещь, которую я заметил в вашем коде, - значение, переданное в id в конструкторе DataAllowableValuesDS, никогда не используется.

Кроме того, результаты должны иметь пару ключей/значений.

Попробуйте изменить SelectItem и DataAllowableValuesDS в

SelectItem editor = new SelectItem(...); 
editor.setAllowEmptyValue(true); 
editor.setValueField("key"); 
editor.setDisplayField("value"); 

public DataAllowableValuesDS(String id) {   
    DataSourceField keyField = new DataSourceTextField("key", "Key"); 
    DataSourceField valueField = new DataSourceTextField("value", "Value"); 

    setFields(keyField, valueField); 
} 

Другие варианты

  • использовать DataArrivedHandler добавить пустое значение
  • попробуйте отправить пустое значение как часть результатов со стороны сервера

Опубликовать DataAllowableValuesDS код, если это возможно.

Смежные вопросы