我正在尝试使用复选框选项来使用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>
它正在给我 -
未捕获的TypeError:无法读取未定义的属性“dataSource”。
任何帮助都会很棒。
感谢。 SONU
答案 0 :(得分:0)
对我来说,你错过了你的HTML控件,对我有用: http://jsfiddle.net/vojtiik/L38KA/1/
<div id="treeview">
</div>
答案 1 :(得分:0)
Nope-我无法让它工作..我正在使用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