Kendo Dropdownlist Cascading: ничего не отображается в дочернем раскрывающемся списке?

Я пытаюсь вручную управлять каскадным выпадающим списком кендо. Я привязываю «каскадное» событие к родителю, и когда это срабатывает, иду на свой сервер, чтобы получить значения дочернего раскрывающегося списка, связанные со значением родительского раскрывающегося списка, и попытаться обновить дочерний источник данных:

childDropDown.setDataSource(new kendo.data.DataSource({ data: resultArr.fieldValues }));

Это устанавливает источник данных дочернего элемента, но ничего не отображается в раскрывающемся списке дочерних элементов.

Мои выпадающие списки определены как элементы ввода, где источник данных родителя настроен с помощью метода mvvm data-source="[\'option1\',\'option2\',\'option3\']" в элементе ввода (создавая их динамически, поэтому создавайте их как строки и добавляйте их в шаблон).

Я считаю, что проблема в том, что нет cascadeFromField, поскольку мой источник данных состоит только из строк параметров, а не из объектов, но не знаю, как это исправить, когда я динамически создаю HTML, поэтому нужно установить источник данных в раскрывающемся списке строка элемента.

Можно ли использовать каскадные раскрывающиеся списки кендо, в которых я вручную меняю дочерние параметры при каждом изменении родительского элемента, как я пытаюсь это сделать?


person Tyler Dahle    schedule 05.12.2017    source источник
comment
Не можете ли вы просто вызвать .on('change') для получения нужного списка?   -  person Keith    schedule 05.12.2017


Ответы (1)


Вы можете просто прикрепить событие change к основной раскрывающийся список, поэтому, когда он изменится, он перезагрузит источник данных дополнительного раскрывающегося списка. Вот пример, где SourceID — основной раскрывающийся список, а SubSourceID — дополнительный раскрывающийся список:

function OnChangeSourceID() {
    var kendoSubSourceID = $('#SubSourceID').data('kendoDropDownList');
    var sourceID = $('#SourceID').data('kendoDropDownList').value();

    kendoSubSourceID.setDataSource({
        serverFiltering: true,
        transport: {
            read: {
                contentType: 'application/json',
                type: 'POST',
                url: requestURL + '&source=' + sourceID,

            },
            parameterMap: function(data) {
                return kendo.stringify(data);

            },

        },
        schema: {
            data: 'data',
            total: 'total',

        },

    });

}

Если у вас есть какие-либо вопросы, не стесняйтесь спрашивать. Надеюсь, я мог быть чем-то полезен.

person Derenir    schedule 08.12.2017