Я использую Kendo (и я почти никогда не использовал его раньше) в приложении ASPNET Mvc, и мне нужно создать TreeList с флажками: проверка отца должна проверять всех детей, а отмена выбора ребенка должна снимать флажок отца ( и дедушка и тд).
Само по себе дерево работает хорошо: я добавил столбец с пользовательским шаблоном и использую (успешно) событие onClick для получения значения флажка, но я не могу понять, как «привязать» это значение к узел дерева (чтобы добраться до каждого ребенка и проверить его).
Вот код:
@(Html.Kendo().TreeList<TreeElem>()
.Name("treelist")
.Columns(col =>{
col.Add().Field(f => f.NodeDescription).Title("TREE LIST");
col.Add().Template("<input type='checkbox' data-bind='checked: checked' onClick='onCheck(event)'/>").Width(55);
})
.DataSource(source => source.Read(read => read.Action("GetData", "TreeController"))
.Model(m => {
m.Id(f => f.NodeId);
m.ParentId(f => f.ParentId);
m.Field(f => f.NodeDescription);
})
)
)
В JavaScript:
function onCheck(e) {
console.log(e.target.checked); //print true/false according to the checkbox
console.log($("#treelist").data('kendoTreeList').dataSource.data()); //print the complete node list
//Other stuffs
}
Я хотел бы получить правильный узел из data () (или view ()) в соответствии с установленным флажком. Каждый узел имеет ссылки на своих детей и отца, поэтому рекурсивная функция должна быть легкой после этого.
Я искал и пробовал много решений, но безрезультатно, есть идеи?
Спасибо