I have a tree view and a grid view. I am dragging item from grid and dropping it to a selected node in my treeview, which is working great. Also I allow dragging and dropping of node with the tree. However if by accident I drag an element from treeview and drop it to grid view I get an exception "Uncaught TypeError: Cannot read property 'loaded' of undefined"
and my page froze.
How can I prevent droping any element in my grid view and avoid this exception?
//Bind data to Employee grid $("#employeesGrid").kendoGrid({ dataSource: $scope.datasourceEmployees, height: 660, dragAndDrop: false, sortable: true, pageable: true, selectable: 'row', filterable: { mode: "row" }, pageable: { refresh: true, pageSizes: true, buttonCount: 7 }, columns: [ { field: "EmployeeKey", title: "Employee Key", filterable: false, width: 100 }, { field: "FullName", title: "Employee Full Name", filterable: { cell: { showOperators: false } }, width: 200 }, { field: "JDEEmployeeName", title: "JDE Employee Name", filterable: { cell: { showOperators: false } }, width: 140 }, { field: "SFEmployeeName", title: "SF Employee Name", filterable: { cell: { showOperators: false } }, width: 140 } ] }); $("#employeesGrid").kendoDraggable({ filter: "tr:not(.k-filter-row)", //specify which items will be draggable hint: function (element) { //create a UI hint, the `element` argument is the dragged item employeeDragged = 1; console.log(employeeDragged); return element.clone().css({ "opacity": 0.6, "background-color": "#0cf" }); } });
PayrollHierarchyService.getCommunities().then( function (results) { $scope.dsCommunity = results; GenerateDefaultJSONData(); tvComunity = $("#treeview-Community").kendoTreeView({ dataSource: $scope.dsCommunityRolesDefault, dragAndDrop: true, dataTextField: "text", loadOnDemand: false, drop: onDrop }).data("kendoTreeView"); }, function (error) { console.log(error.statusText); alertNotification.show("Can not Connect to the Database!", "error"); } ); //Drag and Drop element within a tree (ie Copy, paste node within tree) function onDrop(e) { e.preventDefault(); var sourceItem = this.dataItem(e.sourceNode).toJSON(); var destinationNode = $(e.destinationNode); var treevcomunity = $('#treeview-Community').data('kendoTreeView'); treevcomunity.append(sourceItem, destinationNode); } //Drag and add Employee elements to community treeview $("#treeview-Community").kendoDropTarget({ drop: function (e) { if (employeeDragged) { employeeDragged = 0; var draggableElement = e.draggable.currentTarget, dataItem = $scope.datasourceEmployees.getByUid(draggableElement.data("uid")); var treevcomunity = $('#treeview-Community').data('kendoTreeView'); var selectedNodeComunity = treevcomunity.select(); if (selectedNodeComunity.length != 0 && treevcomunity.parent(selectedNodeComunity).length != 0) { if (dataItem === undefined || dataItem === null) { } else treevcomunity.append({ text: dataItem.FullName }, selectedNodeComunity); } else alertNotification.show("Please select a Community Role first", "error"); } } });
