我在ASPNET Mvc应用程序中使用Kendo(并且以前几乎从未使用过),并且需要创建带有复选框的TreeList:检查父亲应该检查所有孩子,取消检查孩子应该取消检查父亲(和祖父等等)。 树本身运行良好:我添加了带有自定义模板的列,并且正在(成功地)使用onClick事件来获取复选框的值,但是我不知道如何将该值“绑定”到树的节点(可以到达每个孩子并对其进行检查)。
代码在这里:
@(Html.Kendo().TreeList<TreeElem>()
.Name("treelist")
.Columns(col =>{
col.Add().Field(f => f.NodeDescription).Title("TREE LIST");
col.Add().Template("<input type='checkbox' data-bind='checked: checked' onClick='onCheck(event)'/>").Width(55);
})
.DataSource(source => source.Read(read => read.Action("GetData", "TreeController"))
.Model(m => {
m.Id(f => f.NodeId);
m.ParentId(f => f.ParentId);
m.Field(f => f.NodeDescription);
})
)
)
在javascript中:
function onCheck(e) {
console.log(e.target.checked); //print true/false according to the checkbox
console.log($("#treelist").data('kendoTreeList').dataSource.data()); //print the complete node list
//Other stuffs
}
我想根据选中的复选框从data()(或view())获取正确的节点。每个节点都引用了他的孩子和父亲,因此此后的递归函数应该很容易。 我已经寻找并尝试了许多解决方案,但几乎没有结果,有任何想法吗? 谢谢