Kendo TreeView:如何以编程方式设置中间状态
Kendo TreeView: How to set Intermediate state Programmatically
我正在尝试将 Kendo TreeView 与其他控件一起使用。树上的每个叶节点都会打开一个详细信息窗格。当我 select 详细信息窗格中的所有元素时,我将该节点的状态设置为 Checked
myTree.dataItem(node).set("checked", true);
当所有项目都未被select编辑时,我将节点状态设置为未选中。
myTree.dataItem(node).set("checked", false);
但是如果某些项目是 selected,我想将节点状态显示为 Intermediate
我该怎么做。我在文档中找不到任何可以帮助我的东西。我找到的最接近的是
myTree.updateIndeterminate()
但是,它没有完成这项工作。显然,它根据子节点的状态设置状态。但就我而言,没有子节点。我在这里处理叶节点。我可以将叶节点的状态设置为 Intermediate 吗?如果是,怎么做?
找不到这方面的任何帮助。
最终使用以下方法
我现在找到与该特定节点关联的复选框并使用 jQuery 设置它的 indeterminate
值。
function SetTreeNodeIndeterminate(nodeId, set) {
var uid = $("#" + nodeId).parents('li').attr('data-uid');
var node = myTree.findByUid(uid);
if (node.length == 0) return;
var checkBox = $("#_" + uid);
if (checkBox.length == 0) return;
checkBox.prop('indeterminate', set);
updateParentNodeState(node);
}
下一行确保节点的所有父节点也被标记为不确定
function updateParentNodeState(node) {
myTree.updateIndeterminate(node);
let parentNode = myTree.parent(node);
if (parentNode.length > 0)
updateParentNodeState(parentNode);
}
我正在尝试将 Kendo TreeView 与其他控件一起使用。树上的每个叶节点都会打开一个详细信息窗格。当我 select 详细信息窗格中的所有元素时,我将该节点的状态设置为 Checked
myTree.dataItem(node).set("checked", true);
当所有项目都未被select编辑时,我将节点状态设置为未选中。
myTree.dataItem(node).set("checked", false);
但是如果某些项目是 selected,我想将节点状态显示为 Intermediate
我该怎么做。我在文档中找不到任何可以帮助我的东西。我找到的最接近的是
myTree.updateIndeterminate()
但是,它没有完成这项工作。显然,它根据子节点的状态设置状态。但就我而言,没有子节点。我在这里处理叶节点。我可以将叶节点的状态设置为 Intermediate 吗?如果是,怎么做?
找不到这方面的任何帮助。 最终使用以下方法
我现在找到与该特定节点关联的复选框并使用 jQuery 设置它的 indeterminate
值。
function SetTreeNodeIndeterminate(nodeId, set) {
var uid = $("#" + nodeId).parents('li').attr('data-uid');
var node = myTree.findByUid(uid);
if (node.length == 0) return;
var checkBox = $("#_" + uid);
if (checkBox.length == 0) return;
checkBox.prop('indeterminate', set);
updateParentNodeState(node);
}
下一行确保节点的所有父节点也被标记为不确定
function updateParentNodeState(node) {
myTree.updateIndeterminate(node);
let parentNode = myTree.parent(node);
if (parentNode.length > 0)
updateParentNodeState(parentNode);
}