我正在使用kendotreeview控件进行分层数据。另外,我需要提供清晰的功能,其中所有其他形式的字段,包括在Kendotreeview中进行的选择。所以我写了这样的东西:
public ClearAll(): void {
$('#myTreeView').find('input:checkbox').each(function (index,element) {
$(element).prop('checked', false);
});
}
尽管这清除了Treeview中所有选定的复选框,但是在此之后,如果我再次检查父节点 - 儿童复选框未被检查。
此行为(未检查子节点)仅第一次发生,因此,如果我取消选中并再次检查父节点 - 将检查子节点。
i模拟此问题的示例示例:
http://dojo.telerik.com/@rahul_ec27/alihu
html
<button id="btnclear" class="k-button" onclick="ClearAll();">Clear All</button>
javascript
<script>
function ClearAll()
{
$(".k-treeview .k-checkbox input").prop("checked", false).trigger("change");
}
</script>
再次设置数据源将重置检查,
function ClearAll(){
$("#treeview").data("kendoTreeView").setDataSource([
{
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" }
]
}
]);
}