KendoUI - отключить определенные узлы при выборе - PullRequest
0 голосов
/ 23 октября 2019

У меня есть 2 Kendo Treeview;1 без флажка, другой 1 с флажками как пример здесь . Допустим, я хочу отключить определенные узлы во втором древовидном представлении, вид дерева с флажками, когда я выбираю определенные узлы в первом (например, я хочу отключить узлы, которые не являются мебелью, когда я выбираю мебель). Процесс такой же, как пример здесь , но без кнопки, только при выборе узла в первом древовидном представлении. Как мне этого добиться?

1 Ответ

0 голосов
/ 23 октября 2019

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

...