2015-03-13 80 views
0

我的TreeView的是這劍道樹形複選框更改事件

@(Html.Kendo().TreeView() 
.Name("AccessControlTree") 
.DataTextField("Name") 
.Deferred() 
.HtmlAttributes(new { style = "width: 500px" }) 
.Checkboxes(c => c 
.CheckChildren(false) 
) 
.DataSource(dataSource => dataSource.Read(read => read.Action(@Model.ActionMethod, @Model.ControllerName, new { area = @Model.AreaName }).Data("sethierarchyoption")) 
       .ServerFiltering(false)) 
       .LoadOnDemand(true) 
       .Events(events => 
           { 
            events.DataBound("onTreeViewBound").Select("onSelect"); 
           }) 

        ) 

我需要自定義的行爲如下:1)如果我們選擇的父節點,那麼孩子也selected.2)如果未選中父,用戶應該能夠選擇一個孩子而不改變父母的選中狀態。 我可以通過使'.CheckChildren(true)'來做第一個,但是然後第二個失敗。我想如果我在java-script中檢查到checked change事件,那麼我可以解決這個問題。任何想法?

回答

0

問題通過使用這個得到解決。 function onTreeViewBound(e) { $("input:checkbox[name=checkedNodes]").on('click', function() { var checkedStatus = $(this).is(':checked'); $(this).closest(".k-item").find(".k-group .k-item input:checkbox[name=checkedNodes]").each(function() { $(this).attr('checked', checkedStatus); $(this).prop('checked', checkedStatus); }); }); }