我有一个要求,我有一个带复选框的kendo树视图,并且必须在选中父复选框时禁用子节点。
我的树视图通过MVC模型绑定绑定到一个层次数据模型。
@(Html.Kendo().TreeView()
.Name("TreeViewModel")
.Checkboxes(true)
.CheckboxTemplateId("treeview-template")
.ExpandAll(true)
.HighlightPath(true)
.BindTo(Model.TreeViewData)
.DragAndDrop(false)
.LoadOnDemand(false)
我的复选框模板看起来像
<input type="checkbox" onclick="Addnode('#: item.text #', '#: item.id #', this.checked)" id ="#: item.id #" />
我正在尝试获取已检查节点的子节点列表,但还没有取得很大进展。在AddNode函数中,我使用
var dataSource = treeview.dataSource;
var dataItem = dataSource.get(id);
var node = treeview.findByUid(dataItem.uid);
获取所选节点,但node.hasChildren返回undefined,我似乎找不到解决方案来获取此节点的子节点列表。
我在这里尝试过JS小提琴Js Fiddle
请有人帮助我。
答案 0 :(得分:1)
定义以下JavaScript代码:
$("#treeview").on("change", ":checkbox", function(e) {
// Get reference to the Tree View
var treeview = $("#treeview").data("kendoTreeView");
// Get the node owning the checked checkbox
var current = $(e.target).closest("li.k-item");
// Enable or Disable any child items depending if current item is checked or not
treeview.enable($(".k-item", current), !e.target.checked);
});