我有一个绑定到远程数据源的kendo下拉列表。我已经按照文档和配置虚拟化并且远程数据源正在按预期工作,但是如果完全设置了Filter选项,那么在打开的下拉列表中显示错误会在JS中引发错误,并且选择任何内容会引发错误在JS中。关闭列表的唯一方法是单击下拉窗口小部件中的关闭箭头。
以下是我在控制台中看到的错误的屏幕。 '添加'选择项目时发生未定义:
'的Attr'单击外部下拉列表以模糊并关闭时发生未定义。
我在这里不知所措。任何添加过滤器选项都会导致这些错误。我已经通过系统地删除所有可能的选项来解决问题,而且似乎唯一能阻止错误发生的是筛选选项:
@(Html.Kendo().DropDownList()
.Name("MyDropDown")
.DataTextField("MyText")
.DataValueField("Id")
.Filter(FilterType.Contains) //<--This guy right here
...
..more code..
...
)
我在JavaScript中尝试过它,我已经尝试使用kendo ASP.NET MVC包装器和.ToClientTemplate选项。我只是单独使用MVC包装器尝试过它。我一定是在遗漏一些东西,但是我没有看到它。
编辑:问题似乎发生在kendo.all.js的关闭处理程序中:
_closeHandler: function (e) {
if (this.trigger(CLOSE)) {
e.preventDefault();
} else {
this._focused.attr('aria-expanded', false);
this.ul.attr('aria-hidden', true);
}
},
当关闭时将aria-expanded设置为false时,_focused属性未定义。这发生在关闭事件之前,因为我试图挂钩,看看是否有东西我可以手动纠正。这个脚本没有任何原因吗?我错过了一个文件吗?似乎所有东西都配置正确,但是,小部件已经坏了。
编辑#2:我想也许kendo libs有问题,或者库之间有些不匹配,或者这可能是旧版本中的错误,所以我将我的kendo库和mvc包装器更新到了最新版本版本(2018.1.117)和完全相同的问题仍在发生。我想也许在某种程度上导致问题的jquery版本不匹配,但根据文档,版本2018.1.117需要jQuery版本1.12.4,我正在使用。刚刚更新了所有库和依赖项,我仍然收到错误。
答案 0 :(得分:1)
在设置问题的独立测试时,我偶然发现第三方脚本中的一行正在劫持jQuery.fn.focus,这显然有一些严重的副作用。在第三方脚本中删除此行似乎完全解决了这个问题。
答案 1 :(得分:0)
尝试.Filter("contains")
,可能会做到这一点。