具有空值的smartgwt SelectItem

时间:2013-04-19 11:47:57

标签: java smartgwt

我有一个SelectItem,它从数据库中获取数据。我需要在我的select Item中添加一个emptyField。

我的代码看起来很像,而且效果很好。

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

但在我将其更改为下面的代码后,HttpServletRequest中的start_row和end_row字段已更改为“-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 个答案:

答案 0 :(得分:1)

您是否为SelectItem设置了valueField (="name")displayField? 这些属性允许DataSource将结果映射到SelectItem。

我在代码中注意到的一件事是,从未使用过DataAllowableValuesDS构造函数中传递给'id'的值。

此外,结果应该同时具有键/值对。

尝试将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代码。