【问题标题】:KendoUI - disable certain nodes when selectingKendo UI - 选择时禁用某些节点
【发布时间】:2019-10-23 00:39:56
【问题描述】:

我有 2 个剑道树形视图; 1 个没有复选框,另外 1 个带有复选框 like example here。 假设我想禁用第二个树视图上的某些节点,当我在第一个上选择某个节点时,我想禁用带有复选框的树视图(例如,当我选择家具时,我想禁用不是家具的节点)。这个过程有点像example here,但没有按钮,只是从第一个树视图上选择节点。我如何做到这一点?

【问题讨论】:

    标签: javascript kendo-ui kendo-treeview


    【解决方案1】:

    TreeList 有一个名为 select 的事件,它可以为您处理该行为:

    select: function(e) { 
        let tv = $("#treeview-right").data("kendoTreeView"), // Gets the 2dn treeview reference
            text = e.sender.dataItem(e.node).text; // Gets the 1st treeview selected text
    
        // Iterates over the 2nd treeview items
        tv.items().toArray().forEach(item => {
            let dataItem = tv.dataItem(item), // Get the item related dataItem
                disabled = (dataItem.type !== text); // Figures out if the current item is of selected type
    
            // Gets the current item's checkbox
            $(item).find('input[type="checkbox"]')
                .prop('checked', false) // Uncheck it by default
                .prop('disabled', disabled); // Disable/enable based on above condition
        });
    }
    

    Dojo

    替代方案:您可以执行以下操作来过滤第二个 TreeView:

    select: function(e) { 
        let tv = $("#treeview-right").data("kendoTreeView"),
            text = e.sender.dataItem(e.node).text;
    
        tv.dataSource.filter({ field: "type", operator: "eq", value: text });
    }
    

    Dojo

    【讨论】:

    • 正是我需要的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 2013-02-13
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    相关资源
    最近更新 更多