Сбой проверки нескольких полей в SmartGWT - PullRequest
1 голос
/ 19 октября 2010

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

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

Транки источника данных определены как:

    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);

Кампании источника данных имеют поле "ствол", определенное как:

    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);

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

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

1 Ответ

0 голосов
/ 08 ноября 2013
if(selectItemMultipleGrid.getValueASString ==  null){  
    SC.say("Please Select MultipleItem");  
}
...