Kendo Treeview 复选框更改事件
Kendo Treeview checkbox change event
我的树视图是这样的
@(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)如果我们selectparent节点,那么children也被selected.2)如果parent 未被 select 编辑,用户应该能够 select 单个 child 而无需更改 parent 的选中状态。
我可以通过制作 '.CheckChildren(true)' 来完成第一个,但是第二个 fails.I 认为如果我在 java-script 中捕捉到已检查的更改事件,那么我可以解决 this.Any 的想法?
使用这个问题就解决了。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);
});
});
}
我的树视图是这样的
@(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)如果我们selectparent节点,那么children也被selected.2)如果parent 未被 select 编辑,用户应该能够 select 单个 child 而无需更改 parent 的选中状态。 我可以通过制作 '.CheckChildren(true)' 来完成第一个,但是第二个 fails.I 认为如果我在 java-script 中捕捉到已检查的更改事件,那么我可以解决 this.Any 的想法?
使用这个问题就解决了。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);
});
});
}