Jquery 剑道UI树列表选择所有子节点
我使用的是来自KendoUI的,我有一列包含勾号/叉号图像。到目前为止,我已将其设置为在单击行时切换勾号/叉号,并在选定节点上切换直接子节点。在剑道页面的例子中,我找到了一种方法,可以将所有的孩子切换到3级,从Daryl到Buffy 然而,由于我将使用树形列表,深度可达8级,可能更多。我需要切换所选节点的所有子节点的勾号/叉号,无论其深度有多深 下面是我目前使用的代码,我不认为再添加8级for和if语句是最好的方法Jquery 剑道UI树列表选择所有子节点,jquery,kendo-ui,telerik,Jquery,Kendo Ui,Telerik,我使用的是来自KendoUI的,我有一列包含勾号/叉号图像。到目前为止,我已将其设置为在单击行时切换勾号/叉号,并在选定节点上切换直接子节点。在剑道页面的例子中,我找到了一种方法,可以将所有的孩子切换到3级,从Daryl到Buffy 然而,由于我将使用树形列表,深度可达8级,可能更多。我需要切换所选节点的所有子节点的勾号/叉号,无论其深度有多深 下面是我目前使用的代码,我不认为再添加8级for和if语句是最好的方法 $('#treelist td[role="gridcell"]').clic
$('#treelist td[role="gridcell"]').click(function(e) {
var treelist = $('#treelist').data("kendoTreeList");
if($(this).has("img[src='greentick.png']").length > 0) {
$(this).find('img').attr("src","redcross.png");
var selectedRow = treelist.select();
var dataItem = treelist.dataItem(selectedRow);
var rowID = dataItem.id;
var data = treelist.dataSource.data(); //Array of all data rows
var children = [];
console.log(data);
for(var i = 0; i < data.length; i++) {
var parentID = data[i].parentId;
if(parentID == rowID) { //If this row is a child of the selected row
children.push(data[i].id);
data[i].working = "<img src='redcross.png' />";
if(data[i].hasChildren) {
var childParentID = data[i].id; //Parent ID to check against child nodes of current node
for(var j = i; j < (data.length - i); j++) {
if(data[j].parentId == childParentID) {
data[j].working = "<img src='redcross.png' />";
}
}
}
}
}
treelist.refresh();
} else if($(this).has("img[src='redcross.png']").length > 0) {
$(this).find('img').attr("src","greentick.png");
}
});
作为参考,在我的示例中,这是树列表var数据返回的数组中单个数据项的外观。var数据包含一个数组,其中每行包含一个数组
Name: "Daryl Sweeney"
Phone: "(555) 924-9726"
Position: "CEO"
_events: Object
_loaded: true
dirty: false
hasChildren: true
id: 1
parent: ()
parentId: null
uid: "16a87dbd-8ddf-41f4-b69e-38822a527deb"
working: "<img src='greentick.png' id='test' />"
__proto__: i.extend.i
你的列表对子列表使用异步加载吗?我不这么认为,目前我只是使用剑道站点的示例树列表网格-你的列表对子列表使用异步加载吗?我不这么认为,目前我只是使用剑道站点的示例树列表网格-