当我尝试单击TreeView中的某个节点时,我在kendo.all.min.js中收到错误 - 有人知道我是否需要进一步配置它以避免这种情况?
我得到的错误是:
JavaScript runtime error: Unable to get property 'set' of undefined or null reference
并且VS出错时突出显示的粗略区域是:
return arguments.length?(n=e(n,r).closest(q),r.find(".k-state-selected").each(function(){var e=i.dataItem(this);e.set("selected",!1),delete e.selected}),n.length&&i.dataItem(n).set("selected",!0)...
我之后的内容基本上是父文件夹中的文件列表,如果该文件处于活动状态并且有子文件,那么我希望它为其提供一个URL,以便他们可以打开链接,但如果没有,我不想发生任何事情,但我不想完全禁用该节点,因为我希望用户能够扩展它或在需要时收缩它。
以下是我在MVC中使用树视图的代码:
@(Html.Kendo().TreeView()
.Name("treeview")
.Items(level1 =>
{
level1.Add().Text(rootFolderName)
.SpriteCssClasses("folder")
.Expanded(true)
.Items(level2 =>
{
int count = 0;
foreach (var node in list)
{
string title = node.Title;
string url = "";
if (node.HasChildren)
{
title = node.Title + "(" + node.ChildrenCount + ")";
url = "/Secure/Areas/Compliance.aspx?id=" + node.ItemId;
}
level2.Add().Text(title).Url(url)
.Expanded(true);
}
});
})
)
之前有人使用过这些,并知道我还需要做些什么才能实现我的目标?
答案 0 :(得分:0)
好的,我去的时候学得更多。结束使用这样的事件:
@(Html.Kendo().TreeView()
.Name("treeview")
.Events(events => events
.Select("onSelect")
)
.Items(level1 =>
然后如果网址为空则添加preventDefault
function onSelect(e) {
var dataItem = $('#treeview').data('kendoTreeView').dataItem(e.node);
if (dataItem.href == 'undefined')
e.preventDefault();
else
location.href = dataItem.href;
}
可能有更好的方法,但这似乎有效,所以我现在很开心。