Hi,
I have a radtreeview which is having 3 nodes say for example,
There are 3 parent nodes namely A,B,C each having 4 child nodes, I am doing client site drag and drop what ever mentioned in telerik demo.
My problem is the child nodes in parent node A should not be drag and drop to Parent node B.
Again parent node A should not be drag and drop to any other child nodes of B or C.
Here is my code what i am doing for drag and drop on client side:
| function onNodeDragging(sender, args) |
| { |
| var target = args.get_htmlElement(); |
| if(!target) return; |
| if (target.tagName == "INPUT") |
| { |
| target.style.cursor = "hand"; |
| } |
| } |
| function onNodeDropping(sender, args) |
| { |
| var dest = args.get_destNode(); |
| if (dest) |
| { |
| clientSideEdit(sender, args); |
| args.set_cancel(true); |
| return; |
| dropOnTree(args); |
| } |
| } |
| function dropOnTree(args) |
| { |
| var text = ""; |
| if(args.get_sourceNodes().length) |
| { |
| var i; |
| for(i=0; i < args.get_sourceNodes().length; i++) |
| { |
| var node = args.get_sourceNodes()[i]; |
| texttext = text + ', ' +node.get_text(); |
| } |
| } |
| } |
| function clientSideEdit(sender, args) |
| { |
| var destinationNode = args.get_destNode(); |
| if(destinationNode) |
| { |
| var firstTreeView = $find("<%=RadTreeView1.ClientID %>"); |
| firstTreeView.trackChanges(); |
| var sourceNodes = args.get_sourceNodes(); |
| for (var i = 0; i < sourceNodes.length; i++) |
| { |
| var sourceNode = sourceNodes[i]; |
| sourceNode.get_parent().get_nodes().remove(sourceNode); |
| if(args.get_dropPosition() == "over") |
| { destinationNode.get_nodes().add(sourceNode);} return GenerateNodesAsXML(); |
| if(args.get_dropPosition() == "above") insertBefore(destinationNode, sourceNode); |
| if(args.get_dropPosition() == "below") insertAfter(destinationNode, sourceNode); |
| } |
| destinationNode.set_expanded(true); |
| firstTreeView.commitChanges(); |
| } |
| } |
| function insertBefore(destinationNode, sourceNode) |
| { |
| var destinationParent = destinationNode.get_parent(); |
| var index = destinationParent.get_nodes().indexOf(destinationNode); |
| destinationParent.get_nodes().insert(index, sourceNode); |
| return GenerateNodesAsXML(); |
| } |
| function insertAfter(destinationNode, sourceNode) |
| { |
| var destinationParent = destinationNode.get_parent(); |
| var index = destinationParent.get_nodes().indexOf(destinationNode); |
| destinationParent.get_nodes().insert(index+1, sourceNode); |
| return GenerateNodesAsXML(); |
| } |
Please help me on this
Any help will be appreciated.
Thanks in advance.
Vinod