我注意到Kendo MultiSelect
dataSource的奇怪行为。
当我通过元素的某个事件调用函数时,例如按钮点击:
function fillForm()
{
var ms = $("#selector").data('kendoMultiSelect');
var ds = ms.dataSource.insert(....);
};
当函数触发时,定义了dataSource。但是当我想在页面加载时调用一个函数时:
var ms = $("#selector").data('kendoMultiSelect');
var ds = ms.dataSource.insert(....);
我看到了错误:Cannot read property 'dataSource' of undefined
。
如果有人能说出我做错了什么,我将不胜感激。
答案 0 :(得分:0)
这意味着您在初始化之前尝试访问多选。初始化小部件后尝试执行此代码。
如果使用 MVC包装器,那么您应该在脚本块和文档就绪处理程序中添加MVC包装器代码下面的逻辑
e.g。
@(Html.Kendo()。SomeWidget())
<script>
$(function(){
var ms = $("#selector").data('kendoMultiSelect');
//your code goes here
})
</script>
如果通过$()。kendoWidget或通过kendo.bind()通过 JavaScript 使用常规初始化方式,那么您就开始尝试在用于初始化的小部件代码下方访问它。
$("#ms").kendoMultiSelect({...}) // or kendo.bind('body')
//widget is initialized
var ms = $("#ms").data('kendoMultiSelect');