2010-10-19 3 views
1

Я пытаюсь иметь поле формы, содержащее один или несколько элементов, которые определены в другом источнике данных. Элементы имеют числовой идентификатор и человеко-читаемое имя. Все работает хорошо, пока я не попытаюсь спасти; в этом случае я всегда получаю ошибку «Недействительный вариант».Ошибка при проверке нескольких полей в SmartGWT

Форма, которую я редактирую, основана на источнике данных Campaigns, который может быть связан с нулем или более Trunks.

DATASOURCE Стволы определяются как:

DataSourceField fId = new DataSourceField(
      "trunkId", FieldType.INTEGER, "Id"); 
    fId.setPrimaryKey(Boolean.TRUE); 
    fId.setHidden(Boolean.TRUE); 
    fId.setCanEdit(Boolean.FALSE); 

    DataSourceField fName = new DataSourceField(
      "trunkName", FieldType.TEXT, "Name"); 
    fName.setRequired(Boolean.TRUE); 

DATASOURCE Кампания имеет поле «ствол» определяется как:

DataSourceField fTrunk = new DataSourceField(
      "trunk", 
      FieldType.INTENUM, 
      "Trunk" 
    ); 
    fTrunk.setMultiple(Boolean.TRUE); 
    fTrunk.setForeignKey("CfgTrunkDS.trunkId"); 

А вот определение формы, чтобы позволить несколько значений выбирает:

final DynamicForm form = new DynamicForm(); 
    form.setIsGroup(true); 
    form.setGroupTitle("Update Campaign"); 
    form.setNumCols(4); 

    form.setDataSource(dsCampaign); 
    form.setUseAllDataSourceFields(Boolean.TRUE); 

    final SelectItem selectItemMultipleGrid = new SelectItem("trunk"); 
    selectItemMultipleGrid.setTitle("Trunk to use"); 
    selectItemMultipleGrid.setMultiple(true); 
    selectItemMultipleGrid.setMultipleAppearance(MultipleAppearance.PICKLIST); 
    selectItemMultipleGrid.setOptionDataSource(CfgTrunkDS.getInstance()); 
    selectItemMultipleGrid.setValueField("trunkId"); 
    selectItemMultipleGrid.setDisplayField("trunkName"); 


    form.setFields(selectItemMultipleGrid); 

Я также вижу несколько значений правильно, и если я смотрю на «багажник» fi els, я вижу строку типа «12, 16», когда я выбираю элементы с идентификаторами 12 и 16. Но все равно не проходит проверку. Я также заметил, что если я комментирую OptionDataSource в определении формы, он работает так же хорошо.

Что я сделал не так?

ответ

0
if(selectItemMultipleGrid.getValueASString == null){ 
    SC.say("Please Select MultipleItem"); 
} 
Смежные вопросы