Kendo tree view adding child nodes dynamically is not working -
here, there 2 kendo tree views,first 1 here (named- #credentialstreeview") contains nodes check boxes parent node, it's child nodes , inner children etc,
there kendo tree view (named-#curriculumcustomcredtreeview ),what want is,all nodes checked in first tree view should added second tree view maintaining exact parent child relation,for example if there hierarchy parent1==>child1==>child2
(which child of child1),if child2 checked it's parent nodes including child2 should added second tree view, here problem , 1st: parent node can added, can added treeview in user i/f , in datasource,so working fine again on appending it's child node added node not added datasource,so on adding next child node it, impossible details of node datasource need add next node,
kendo version--2013.3.1119.440
please see code have used.and please let me know details possible.
function onaddtorequirement() { var treeviewcraftdata = $("#credentialstreeview").data("kendotreeview").datasource.data();//1st tree view contains loaded list of nodes different levels(with multiple childs , innerchilds check boxes) var treeviewselectedtextlist = []; var requirementtreeview = $("#curriculumcustomcredtreeview").data("kendotreeview");//2nd tree view selected nodes 1st tree view added dynamically $("#credentialstreeview input[type=checkbox]:checked").closest(".k-item").each(function () { treeviewselectedtextlist.push( $(this).closest('.k-item').text() ); }); var treeviewselectedlist = []; var currentcraftnode = null;//currently 3 levels there craft==>its levels(can multiple)==>it's modules(can multiple) var currentlevelnode = null; var currentmodulenode = null; (var j = 0; j < treeviewcraftdata.length; j++) //treeviewcraftdata contains entire data in datsource of 1st tree view , looping through { if (treeviewcraftdata[j].haschildren)//checking craft has children { var treeviewleveldata = treeviewcraftdata[j].children.data();//if taking its, levels (craft,s children) currentcraftnode = treeviewcraftdata[j]; (var k = 0; k < treeviewleveldata.length; k++) //looping through levels { if (treeviewleveldata[k].haschildren) //checking levels has children(named modules here) { currentlevelnode = treeviewleveldata[k]; var treeviewmoduledata = treeviewleveldata[k].children.data(); (var l = 0; l < treeviewmoduledata.length; l++) //looping through modules(inner children) , checking if checked { if (treeviewmoduledata[k].checked || $.inarray(treeviewmoduledata[k].text, treeviewselectedtextlist) > -1) { currentmodulenode = treeviewmoduledata[k]; if (requirementtreeview.datasource._data.length > 0)//added condition prevent adding duplicate nodes 2nd tree view,in first case directly goes else part { var dataitemcraft1 = null; var dataitemlevel1 = null; $(requirementtreeview.datasource.data()).each(function() { if (this.id !== currentcraftnode.id) { requirementtreeview.append({//appending 1st node name: currentcraftnode.name, id: currentcraftnode.id, haschildren:currentcraftnode.haschildren, //items: treeviewselectedlist.length != 0 ? treeviewselectedlist : null }, null); } }); dataitemcraft1 = requirementtreeview.datasource.get(currentcraftnode.id); $(requirementtreeview.datasource.data()).each(function() { if (this.id !== currentlevelnode.id) {//appending 2nd node first node requirementtreeview.append({ name: currentlevelnode.name, id: currentlevelnode.id, haschildren: currentlevelnode.haschildren, }, requirementtreeview.datasource.get(dataitemcraft1.uid)); } }); dataitemlevel1 = requirementtreeview.datasource.get(currentcraftnode.id);//here throws exception above node not added datsource $(requirementtreeview.datasource.data()).each(function() {//code append 3rd node above added node //ebugger; if (this.id !== currentmodulenode.id) { requirementtreeview.append({ name: currentmodulenode.name, id: currentmodulenode.id, haschildren: currentmodulenode.haschildren, //items: treeviewselectedlist.length != 0 ? treeviewselectedlist : null }, requirementtreeview.datasource.get(dataitemlevel1.uid)); } }); dataitemcraft1 = null; dataitemlevel1 = null; } else { requirementtreeview.append//appending 1st node ({ name: currentcraftnode.name, id: currentcraftnode.id, haschildren: currentcraftnode.haschildren, value: currentcraftnode.id }); var dataitemcraft = requirementtreeview.datasource.get(currentcraftnode.id);//working fine requirementtreeview.append//appending 2nd node first node ({ name: currentlevelnode.name, id: currentlevelnode.id, haschildren: currentlevelnode.haschildren, }, requirementtreeview.findbyuid(dataitemcraft.uid)); requirementtreeview.expand(requirementtreeview.findbyuid(dataitemcraft.uid)); var dataitemlevel = requirementtreeview.datasource.get(currentlevelnode.id);//here throws exception above node not added datsource requirementtreeview.append({ name: currentmodulenode.name, id: currentmodulenode.id, haschildren: currentmodulenode.haschildren, //items: treeviewselectedlist.length != 0 ? treeviewselectedlist : null }, requirementtreeview.findbyuid(dataitemlevel.uid)); requirementtreeview.expand(requirementtreeview.findbyuid(dataitemlevel.uid)); dataitemcraft = null; dataitemlevel = null; } } } } else { } } } }
Comments
Post a Comment