javascript - 如何在不折叠的情况下禁用所有 Kendo TreeView 节点

标签 javascript kendo-ui kendo-treeview

我将 kendo.ui.TreeView 用于 jQuery。我用复选框和子对象创建了树:

$("#my-tv-1").kendoTreeView({
  dataSource: data,
  checkboxes: {
    checkChildren: true
  },
  loadOnDemand: false
}).data("kendoTreeView");

let data = [
  { text: "Item 1", id: 1 },
  { text: "Item 2", id: 2 },
  { 
    text: "Item 3", expanded: true, items: [
      { text: "Subitem 1", id: 10 }
    ]
  }
];
如何在没有折叠节点的情况下禁用所有节点(或所有 Treeview )?当我使用“启用”方法时,所有具有子元素并已展开的节点都将折叠。
function() {
  let treeview = $("#my-tv-1").data("kendoTreeView");

  // Disable all items
  treeview.enable(false);

  // or any node
  let n = treeview.dataSource.view()[2];
  treeview.enable(n, false);
}

最佳答案

要禁用,您可以执行以下操作,以便展开的节点不会折叠:

treeview.element.find('input.k-checkbox').each(function() {
    $(this).attr('disabled', 'true');
});

treeview.element.find('span.k-in').each(function() {
    $(this).addClass('k-state-disabled');
});

treeview.element.find('span.k-i-collapse').each(function() {
    $(this).addClass('k-state-disabled');
});
要重新启用它们:
treeview.enable(true);

关于javascript - 如何在不折叠的情况下禁用所有 Kendo TreeView 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64768088/

相关文章:

javascript - 如何使用 ngrepeat 和双向绑定(bind)获取指令的隔离范围?

javascript - 为什么html元素的innerText属性只显示body元素的innerText?

javascript - Firefox OS 模拟器中的 Uint8Array/Uint16Array 转换是否中断?

c# - Kendo UI for MVC - TreeView - 仅选择子节点

javascript - 当我在事件处理程序内部引用对象的参数时,即使将其设置为对象,该参数也始终为 null

kendo-ui - 如何更改剑道网格过滤器格式

javascript - 我一直在使用 Kendo Treeview 进行导航。在加载时我希望所有节点都可见

html - Kendo UI 移动和 MySQL 数据库连接

jquery - Kendo Treeview 节点编辑/更新

javascript - Kendo treeview expandPath 方法