Telerik 获取剑道UI Web树视图中的复选框列表

Telerik 获取剑道UI Web树视图中的复选框列表,telerik,treeview,kendo-ui,Telerik,Treeview,Kendo Ui,如何在剑道UI Web树视图中获得复选框列表? 我在API的任何地方都找不到这个功能,但我认为这将是一个非常基本的操作。实际上没有API方法,但您可以通过jQuery轻松获得它们 要获取选中的复选框,请使用 $('#treeviewName :checked'); 要获取选中的容器li元素,请使用: $('#treeviewName :checked').closest('li'); 拥有li元素后,可以将其传递给TreeView的方法,并获得基础模型及其ID或其他属性。来源: var tr

如何在剑道UI Web树视图中获得复选框列表?
我在API的任何地方都找不到这个功能,但我认为这将是一个非常基本的操作。

实际上没有API方法,但您可以通过jQuery轻松获得它们

要获取选中的复选框,请使用

$('#treeviewName :checked');
要获取选中的容器li元素,请使用:

$('#treeviewName :checked').closest('li');
拥有li元素后,可以将其传递给TreeView的方法,并获得基础模型及其ID或其他属性。

来源:

var treeview=$(“#treeview”).data(“kendoTreeView”);
var checkedNodes=[];
函数状态(节点){
对于(var i=0;i

这似乎不能解释通过级联检查的未展开节点:checkChildren属性。

在剑道演示中,它们提供了以下算法:

    // function that gathers IDs of checked nodes
    function checkedNodeIds(nodes, checkedNodes) {
        for (var i = 0; i < nodes.length; i++) {
            if (nodes[i].checked) {
                checkedNodes.push(nodes[i].id);
            }

            if (nodes[i].hasChildren) {
                checkedNodeIds(nodes[i].children.view(), checkedNodes);
            }
        }
    }

    // show checked node IDs on datasource change
    function onCheck() {
        var checkedNodes = [],
            treeView = $("#treeview").data("kendoTreeView"),
            message;

        checkedNodeIds(treeView.dataSource.view(), checkedNodes);

        if (checkedNodes.length > 0) {
            message = "IDs of checked nodes: " + checkedNodes.join(",");
        } else {
            message = "No nodes checked.";
        }

        $("#result").html(message);
    }
//收集已检查节点ID的函数
函数checkedNodeId(节点,checkedNodes){
对于(var i=0;i0){
message=“选中节点的ID:”+checkedNodes.join(“,”);
}否则{
message=“未检查任何节点。”;
}
$(“#结果”).html(消息);
}

此解决方案不考虑您选中子节点而尚未展开父节点的情况,因为尚未通过javascript添加li和复选框。我正在寻找更好的解决办法。
    // function that gathers IDs of checked nodes
    function checkedNodeIds(nodes, checkedNodes) {
        for (var i = 0; i < nodes.length; i++) {
            if (nodes[i].checked) {
                checkedNodes.push(nodes[i].id);
            }

            if (nodes[i].hasChildren) {
                checkedNodeIds(nodes[i].children.view(), checkedNodes);
            }
        }
    }

    // show checked node IDs on datasource change
    function onCheck() {
        var checkedNodes = [],
            treeView = $("#treeview").data("kendoTreeView"),
            message;

        checkedNodeIds(treeView.dataSource.view(), checkedNodes);

        if (checkedNodes.length > 0) {
            message = "IDs of checked nodes: " + checkedNodes.join(",");
        } else {
            message = "No nodes checked.";
        }

        $("#result").html(message);
    }