0
我想列出SelectItem組件內的表。我爲此使用ListGrid組件。下面是代碼:使用SelectItem的重複數據源字段(smartGWT)
final ListGrid brandGrid = new ListGrid();
ListGridField nameField = new ListGridField("name");
ListGridField descriptionField = new ListGridField("description");
ListGridField detailField = new ListGridField("detail");
final SelectItem filterList = new SelectItem();
filterList.setDisplayField("name");
filterList.setValueField("description");
filterList.setPickListWidth(400);
filterList.setOptionDataSource(myDataSource);
filterList.setPickListFields(nameField, descriptionField);
filterList.setPickListProperties(brandGrid);
filterList.setDefaultValue(record.getAttributeAsString("name"));
filterList.setShowTitle(false);
filterList.setStartRow(false);
而對於myDataSource實例的數據源代碼(我稱這種方法來初始化類屬性DataSource myDataSource
我用SelectItem filterList
前):
private DataSource getBrandData(List<BrandDB> result){
DataSource ds = new DataSource();
DataSourceTextField id = new DataSourceTextField();
id.setName("idBrand");
id.setPrimaryKey(true);
DataSourceTextField name = new DataSourceTextField();
name.setName("name");
DataSourceTextField description = new DataSourceTextField();
description.setName("description");
ds.setFields(id, nazov, popis);
ds.setClientOnly(true);
for(int i = 0; i < result.size(); i++){
Record rc = new Record();
rc.setAttribute("idBrand", result.get(i).getIdBrand()+"");
rc.setAttribute("name", result.get(i).getName());
rc.setAttribute("description", result.get(i).getDescription());
ds.addData(rc);
}
return ds;
}
的問題是,價值description
在我數據源在幾個地方有相同的值(這些值的ID和名稱是不同的)。我得到以下錯誤:
TMR0:WARN:fetchMissingValues:isc_SelectItem_1:Deriving valueMap for 'description' from dataSource based on displayField 'name'. This dataSource contains more than one record with description set to Not defined with differing name values. Derived valueMap is therefore unpredictable.
任何想法如何設置SelectItem接受這些重複值?非常感謝你的回答。 :)