【发布时间】:2016-09-21 04:21:17
【问题描述】:
所以我有一个这样定义的数组
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;
};
【问题讨论】:
-
请提供 DropDownList 配置以及您使用
setDataSource的方式和位置。带有虚拟result的完整示例将非常有用。 -
@dimodi 我正在使用 Kendo MVC,所以我无法真正创建一个工作示例,但我可以发布更多代码。
标签: javascript kendo-ui kendo-dropdown kendo-datasource