新的剑道数据源是空的?

时间:2016-09-21 04:21:18

标签: javascript kendo-ui kendo-dropdown kendo-datasource

所以我有一个像这样定义的数组

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,可以看到数组已正确初始化。 enter image description here

然后我继续创建一个新的数据源

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

并检查并确认它是正确初始化

enter image description here

但是当我尝试在我的下拉列表中使用setDataSource方法将其设置为下拉列表时,它会抱怨Uncaught TypeError: Text.indexOf is not a function

所以我做了一个简单的dataSource.at(1)并得到了未定义的&#39;。不确定我在这里做错了什么?

更新添加更多代码:

我如何创建/配置下拉列表

@(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;
};

1 个答案:

答案 0 :(得分:0)

dataTextFielddataValueField设置使用大写字母("Text""Value"),但newArrary项目的字段为小写字母({{ 1}},text)。这些应该匹配,否则小部件将无法处理新数据。

http://dojo.telerik.com/OQOle

我不确定

  

所以我做了一个简单的dataSource.at(1)并得到了#undefined&#39;。

部分,因为其他一切看起来还不错。