Drag and Drop Between Trees
Setting the allowDrag property to true allows users to drag and drop nodes within the same TreeView.
To allow dragging and dropping nodes between different TreeView controls, you must handle the dragOver event and set the cancel parameter to true if the operation is invalid, or to false if it is valid.
root 1
Item 1.1
Item 1.2
Item 1.3
root 2
Item 2.1
Item 2.2
Item 2.3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | // This file locates: "Scripts/Lesson/C1Nav/BetweenTrees.js". c1.documentReady(function () { var firstTree = wijmo.Control.getControl( '#firstTree' ); firstTree.itemsSource = [ { header: 'root 1' , items: [ { header: 'Item 1.1' }, { header: 'Item 1.2' }, { header: 'Item 1.3' }] } ]; firstTree.displayMemberPath = 'header' ; firstTree.childItemsPath = "items" ; firstTree.allowDragging = true ; firstTree.dragOver.addHandler(dragOverBetweenTrees); var secondTree = wijmo.Control.getControl( '#secondTree' ); secondTree.itemsSource = [ { header: 'root 2' , items: [ { header: 'Item 2.1' }, { header: 'Item 2.2' }, { header: 'Item 2.3' }] } ]; secondTree.displayMemberPath = 'header' ; secondTree.childItemsPath = "items" ; secondTree.allowDragging = true ; secondTree.dragOver.addHandler(dragOverBetweenTrees); // handle drag-drop within or between trees function dragOverBetweenTrees(s, e) { var t1 = e.dragSource.treeView; var t2 = e.dropTarget.treeView; // prevent dragging within trees if (t1 == t2 && !document.getElementById( 'dragWithin' ). checked ) { e.cancel = true ; } // allow dragging between trees if (t1 != t2 && document.getElementById( 'dragBetween' ). checked ) { e.cancel = false ; } } }); |
1 2 3 4 5 6 7 8 9 10 11 | // This file locates: "Content/css/Lesson/C1Nav/BetweenTrees.css". /* default trees on this sample */ .demo-control .wj-treeview { height: 250px; font-size: 120%; margin-top: 8px; margin-bottom: 8px; padding: 3px; background: #f0f0f0; box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 | using System.Web.Mvc; namespace LearnMvcClient.Controllers { public partial class C1NavController : Controller { // GET: BetweenTrees public ActionResult BetweenTrees() { return View(); } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | < h1 > @Html .Raw(Resources.C1Nav.BetweenTrees_Title) </ h1 > < p > @Html .Raw(Resources.C1Nav.BetweenTrees_Text1) </ p > < p > @Html .Raw(Resources.C1Nav.BetweenTrees_Text2) </ p > < label > < input id = "dragWithin" type = "checkbox" checked = "checked" > @Html .Raw(Resources.C1Nav.BetweenTrees_Text3) </ label > < label > < input id = "dragBetween" type = "checkbox" checked = "checked" > @Html .Raw(Resources.C1Nav.BetweenTrees_Text4) </ label > < div class = "row demo-settings" > < div class = "col-xs-6" > @Html .C1().TreeView().Id( "firstTree" ).CssClass( "short-tree" ) </ div > < div class = "col-xs-6" > @Html .C1().TreeView().Id( "secondTree" ).CssClass( "short-tree" ) </ div > </ div > |