KendoTreeView 复选框全部清除

KendoTreeView Checkbox Clear All

我正在为分层数据使用 KendoTreeView 控件。此外,我需要提供 ClearAll 功能,其中应清除表单中的所有其他字段,包括在 KendoTreeView 中所做的选择。所以我写了这样的东西:

 public ClearAll(): void {
        $('#myTreeView').find('input:checkbox').each(function (index,element) {
            $(element).prop('checked', false);
        });
            }

虽然这会从树视图中清除所有选中的复选框,但是在此之后如果我再次检查父节点 - 子复选框不会被选中。

此行为(未检查子节点)仅在第一次发生,因此如果我取消选中并再次检查父节点 - 将检查子节点。

我模拟了这个问题的示例:

http://dojo.telerik.com/@rahul_ec27/ALihu

再次设置数据源将重置检查,

     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" }
                    ]
                }
            ]);
  }

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>