Hello Guys,
i want to clear a tree node and reload it again on context menu click .please check this snippet
Hello Guys,
i want to clear a tree node and reload it again on context menu click .please check this snippet
@webix team any update?
Hello,
To delete a node (parent or child) you should use the remove method and specify the id of the required node there:
tree = webix.ui({ view:"tree",... });
var nodeId = tree.getSelectedId();
tree.remove(nodeId);
@Nastja thank you for your reply but my requirement is to reload the specific node on context menu click event
@qadirkanore can you please clarify, do you intend to reload the branch (child nodes) or just the specific node where the context option is clicked?
loadBranch
is intended for one-time branch loading, so in order to reload it again, you need to use a custom ajax request
https://webix.com/snippet/93f8596b
As for updating one item, if your backend is tuned for returning one record, you can make a custom request and updateItem
with the new data:
webix.ajax().get("/data.php?updateId="+nodeId).then(function(data){
var update = data.json();
tree.updateItem(nodeId, update);
});
@Listopad i want to reload the child of the node.Thanks a lot for the snippet it helped me to fix my issue
Hi,
How do I refresh a node if I am using the ‘url’ property to let the Tree component handle Dynamic loading of each child, as per https://docs.webix.com/samples/17_datatree/16_dyn_loading/01_dyn_loading.html
I have tried using $$(“MyTree”).Refresh(TreeNode.id) but this does not do anything!
Thanks
Antony
I am having an issue when reloading a branch, the backcolor of the nodes is not refreshed. I used the code in https://webix.com/snippet/93f8596b, it refreshes the texts shown in the nodes, but not the color, code is below, and my template is:
template: "{common.icon()} <img src='/img/#imageUrl#' style='float:left; margin:3px 4px 0px 1px;'> <font color='#itemColor#'> #bomLongName# </font>",
//where itemcolor field determines the color of the node.
webix.ajax().put("/search/ChangeStatusBOM/", { id: nodeId, bomId: nodeId, bomStatus: 'D', parent_id: node.parent_id },
{
error: function (text, data, XmlHttpRequest) {
console.log("Error deleting node");
},
success: function (text, data, XmlHttpRequest) {
// custom ajax request instead of loadBranch
var url = "/search/GetBOMTreeByDtlId/";
var node = treeB.getItem(data.json().id);
console.log(url + data.json().parent_id);
treeB.parse(
webix.ajax().get(url + data.json().parent_id).then(function (data) {
return data = data.json();
// typical loadBranch response
// {"parent":"2","data":[{"id":5,"value":"List"}]}
})
);
}
});
Thanks!
PS: is this only valid if done in “save” property of the tree? I just realized that data is not updated if it is not called from save section. Is this a way to manually call the update that is performed when the ajax runs inside Save: section?
thanks.
Any word on this?