Итак, у меня есть массив, который определяется следующим образом
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;
};
setDataSource
. Полный пример с фиктивнымresult
будет наиболее полезен. - person dimodi   schedule 21.09.2016