Новый источник данных кендо недействителен?

Итак, у меня есть массив, который определяется следующим образом

var newArrary = Array();
for (var i = 0; i < result.length; i++) {
   if (result[i].Id != TaskId) {
       newArrary.push({text:result[i].Name, value:result[i].Id})
   }
}

Я сделал console.log и вижу, что массив правильно инициализирован. введите здесь описание изображения

Затем я продолжил создание нового источника данных

 var dataSource = new kendo.data.DataSource({
        data: newArrary
    });

а также проверьте и убедитесь, что он инициализируется правильно

введите здесь описание изображения

но когда я пытаюсь установить его в раскрывающийся список с помощью метода setDataSource в моем раскрывающемся списке, он жалуется на Uncaught TypeError: Text.indexOf is not a function

Итак, я сделал простое dataSource.at(1) и получил «неопределенное». Не уверен, что я делаю неправильно здесь?

ОБНОВЛЕНИЕ Добавление дополнительного кода:

Как я создал/настроил раскрывающийся список

@(Html.Kendo().DropDownListFor(m => m)
              .BindTo(list)
              .DataTextField("Text")
              .DataValueField("Value")
              .HtmlAttributes(attributes)
              .OptionLabel(string.IsNullOrEmpty(label) ? (required && @dropDownList.Value != "0" && @dropDownList.Value != "" ? "" : " ") : label)
              .Value(@dropDownList.Value)
              .TemplateId("myTemplate")
              .ValueTemplateId("dmyTemplate")
        )

И как я использую setDatasource

setTask = function (result, taskCodeStartList, taskCodeResultLisr) {
    var selectedTaskItem = $("#" + taskStartList).data("kendoDropDownList")
    var selectedFilterTask = $("#" + taskResultLisr).data("kendoDropDownList").value()
    var newArrary = Array();

    for (var i = 0; i < result.length; i++) {
        if (result[i].Id != selectedFilterTaskId) {
            newArrary.push({text:result[i].Name, value:result[i].Id})
        }
    }

    var dataSource = new kendo.data.DataSource({
        data: newArrary
    });

    selectedTaskCodeItem.setDataSource(dataSource);
    return selectedTaskCodeItem;
};

person Jack Thor    schedule 21.09.2016    source источник
comment
Укажите конфигурацию DropDownList и то, как и где вы используете setDataSource. Полный пример с фиктивным result будет наиболее полезен.   -  person dimodi    schedule 21.09.2016
comment
@dimodi Я использую Kendo MVC, поэтому я не могу создать рабочий пример, но могу опубликовать больше кода.   -  person Jack Thor    schedule 21.09.2016


Ответы (1)


Настройки dataTextField и dataValueField имеют заглавные буквы ("Text", "Value"), а элементы newArrary имеют поля со строчными буквами (text, value). Они должны совпадать, иначе виджет не сможет обрабатывать новые данные.

http://dojo.telerik.com/OQOle

я не уверен в

Итак, я сделал простой dataSource.at(1) и получил «неопределенное».

часть, так как все остальное выглядит нормально.

person dimodi    schedule 21.09.2016