1

我试图让 KendoTree 视图使用复选框选项。我复制了完全相同的代码并添加了:

<link href="kendo/kendo.common.min.css" rel="stylesheet" />
<link href="kendo/kendo.default.min.css" rel="stylesheet" />
<script src="kendo/jquery.min.js" />
<script src="kendo/kendo.all.min.js" />

<script>
    $("#treeview").kendoTreeView({
        checkboxes: {
            checkChildren: true
        },

        dataSource: [{
            id: 1, text: "My Documents", expanded: true, spriteCssClass: "rootfolder", items: [
                {
                    id: 2, text: "Kendo UI Project", expanded: true, spriteCssClass: "folder", items: [
                        { id: 3, text: "about.html", spriteCssClass: "html" },
                        { id: 4, text: "index.html", spriteCssClass: "html" },
                        { id: 5, text: "logo.png", spriteCssClass: "image" }
                    ]
                },
                {
                    id: 6, text: "New Web Site", expanded: true, spriteCssClass: "folder", items: [
                        { id: 7, text: "mockup.jpg", spriteCssClass: "image" },
                        { id: 8, text: "Research.pdf", spriteCssClass: "pdf" },
                    ]
                },
                {
                    id: 9, text: "Reports", expanded: true, spriteCssClass: "folder", items: [
                        { id: 10, text: "February.pdf", spriteCssClass: "pdf" },
                        { id: 11, text: "March.pdf", spriteCssClass: "pdf" },
                        { id: 12, text: "April.pdf", spriteCssClass: "pdf" }
                    ]
                }
            ]
        }]
    });

    // 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
    $("#treeview").data("kendoTreeView").dataSource.bind("change", function() {
        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);
    });
</script>

它给了我——

未捕获的类型错误:无法读取未定义的属性“数据源”。

任何帮助都会很棒。

谢谢。索努

4

2 回答 2

0

不-我无法让它工作..我正在使用 FlatUI 主题,所以它可能是主题的问题。

        Uncaught TypeError: Cannot read property 'dataSource' of undefined index2.html:211
        (anonymous function) index2.html:211
        i.extend.trigger kendo.all.min.js:9
        nt.extend._process kendo.all.min.js:11
        nt.extend._change kendo.all.min.js:11
        b.isFunction.i jquery.min.js:3
        i.extend.trigger kendo.all.min.js:9
        (anonymous function) kendo.all.min.js:11
        i.extend.trigger kendo.all.min.js:9
        (anonymous function) kendo.all.min.js:11
        i.extend.trigger kendo.all.min.js:9
        nt.extend._process kendo.all.min.js:11
        nt.extend._change kendo.all.min.js:11
        b.isFunction.i jquery.min.js:3
        i.extend.trigger kendo.all.min.js:9
        (anonymous function) kendo.all.min.js:11
        i.extend.trigger kendo.all.min.js:9
        (anonymous function) kendo.all.min.js:11
        i.extend.trigger kendo.all.min.js:9
        nt.extend._process kendo.all.min.js:11
        nt.extend._change kendo.all.min.js:11
        b.isFunction.i jquery.min.js:3
        i.extend.trigger kendo.all.min.js:9
        (anonymous function) kendo.all.min.js:11
        i.extend.trigger kendo.all.min.js:9
        nt.extend.set kendo.all.min.js:11
        Rt.extend.set kendo.all.min.js:11
        v.extend._checkboxChange kendo.all.min.js:24
        b.isFunction.i jquery.min.js:3
        b.event.dispatch jquery.min.js:3
        v.handle
于 2013-08-19T15:23:49.147 回答
0

在我看来,您错过了 html 中的控件,对我有用:http: //jsfiddle.net/vojtiik/L38KA/1/

<div id="treeview">
</div>
于 2013-08-07T14:13:56.473 回答