新 Kendo 数据源为空?
New Kendo Data Source is null?
所以我有一个这样定义的数组
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)
并得到了 'undefined'。不确定我在这里做错了什么?
更新添加更多代码:
我如何Created/Configured下拉
@(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;
};
dataTextField
和 dataValueField
设置为大写字母 ("Text"
, "Value"
),但 newArrary
项的字段为小写字母 ( text
、value
)。这些应该匹配,否则小部件将无法处理新数据。
我不确定
So I did a simple dataSource.at(1) and get 'undefined'.
部分,因为其他一切看起来都还不错。
所以我有一个这样定义的数组
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)
并得到了 'undefined'。不确定我在这里做错了什么?
更新添加更多代码:
我如何Created/Configured下拉
@(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;
};
dataTextField
和 dataValueField
设置为大写字母 ("Text"
, "Value"
),但 newArrary
项的字段为小写字母 ( text
、value
)。这些应该匹配,否则小部件将无法处理新数据。
我不确定
So I did a simple dataSource.at(1) and get 'undefined'.
部分,因为其他一切看起来都还不错。