Thank you, logic below worked:
var ids=tree.getAllSubItems(0).split(",")
var check={}
for (var i=0; i<ids.length; i++){
var label=tree.getItemText(ids[i]);
if (!check[label]) check[label]=true;
else tree.deleteItem(ids[i]); //delete duplicate
However, I would like to keep duplicate node highlighted, and return it’s default value ( ex: New Item[1] ). I am trying to use stopEdit(), it doesn’t work:
var hasChildrenCheck = tree.hasChildren(treeitemId);
tree.attachEvent(“onEdit”,function(){
var booleanVar = true;
if(hasChildrenCheck > 0 ){
var ids = tree.getAllSubItems(treeitemId).split(",");
var check={};
for (var i=0; i<ids.length; i++){
var label=tree.getItemText(ids[i]);
if (!check[label]) {
check[label]=true;
booleanVar=true;
}
else {
// tree.focusItem(selectedItem);
tree.stopEdit();
// tree.deleteItem(ids[i]); //delete duplicate
booleanVar=false;
}
}
} return booleanVar;
});
Please help,
Thank you
IF you want to prevent duplicates as result of in-tree edit, it can be done as
tree.attachEvent(“onEdit”,function(stage,id,tree,value){
if (stage==2){ //before editor closed
var ids=tree.getAllSubItems(0).split(",");
for (var i=0; i<ids.length; i++)
if (tree.getItemText(ids[i])==value) return false; //revert to old value if there is a duplicate
}
return true;
})