在document.ready中未定义的combobox

时间:2013-11-06 20:55:47

标签: c# jquery asp.net-mvc-4 combobox kendo-combobox

$(document).ready(function () { 
var combobox = $("#Id").data("kendoComboBox");
 combobox.dataSource.data(jsonData);
});

我正在尝试在文档准备好的情况下为组合框设置数据源,但是,我无法设置组合框始终未定义...

我在剃刀局部视图中声明组合框..

        @(Html.Kendo().ComboBoxFor(model => model.Id)
        .HtmlAttributes(new { style = "width: 100%;" })
         )

comobo元素在那里......但是组合的数据源是未定义的...所以我可能需要在加载时初始化数据源事件吗?我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:1)

在JavaScript中,变量的作用域是一个函数。因此,var combobox仅在ready期间执行的函数内可见。将移动声明和用法修复到同一范围:

$(function () { 
  var combobox = $("#combo").data("kendoComboBox");
  combobox.dataSource.data(jsonData);
});

或:

$(function () { });
var combobox = $("#combo").data("kendoComboBox");
combobox.dataSource.data(jsonData);

另请注意,如果您在.data("kendoComboBox")之前运行脚本,ready可能还不可用。

答案 1 :(得分:0)

Kendo组合框不包含在标准核心或Web包中。

请使用位于的kendo.all.min.js http://cdn.kendostatic.com/2014.1.318/js/kendo.all.min.js

以获得对kendoComboBox的访问权。

答案 2 :(得分:0)

试试这个:

 var combobox = $("#ID").data("kendoComboBox");
 combobox.dataSource.read();