private void radTreeView1_DragDrop(object sender, DragEventArgs e) { RadTreeNode sourceNode = e.Data.GetData(typeof(RadTreeNode)) as RadTreeNode; // Retrieve the client coordinates of the drop location. Point targetPoint = rtvTree.PointToClient(new Point(e.X, e.Y)); // Retrieve the node at the drop location. RadTreeNode targetNode = rtvTree.GetNodeAt(targetPoint); if (sourceNode != null && targetNode != null) { RadTreeNode clonedNode = (RadTreeNode)sourceNode.Clone(); if (radioButtonCut.Checked) { sourceNode.Remove(); } targetNode.Nodes.Add(clonedNode); targetNode.Expanded = true; } }
public void AjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e) { string[] args = e.Argument.Replace("\r\n", "\n").Split('\n'); RadTreeView srcTree = null; RadTreeView dstTree = null; if (TreeResources.ClientID.Equals(args[0])) { srcTree = TreeResources; } else if (TreeResources.ClientID.Equals(args[0])) { srcTree = TreeResources; } if (TreeResources.ClientID.Equals(args[1])) { dstTree = TreeResources; } else if (TreeResources.ClientID.Equals(args[1])) { dstTree = TreeResources; } RadTreeNode sourceNode = srcTree.FindNodeByText(args[2]); RadTreeNode destNode = dstTree.FindNodeByText(args[3]); //if (sourceNode.Parent == null) //{ // RadAjaxManager1.Alert("گره اصلی قابل حذف نیست"); // return; //} RadTreeNode tempNode = destNode; while (tempNode != null) { if (!tempNode.Equals(sourceNode)) { tempNode = tempNode.ParentNode; } else { break; } } if (tempNode != null) { //RadAjaxManager1.Alert("نمیتوان یک گره را به فرزندانش منتقل کرد"); return; } BOLResources ResourcesBOl = new BOLResources(); ResourcesBOl.Code = Convert.ToInt32(sourceNode.Value); ResourcesBOl.MasterCode = Convert.ToInt32(destNode.Value); ResourcesBOl.Name = sourceNode.Text; ResourcesBOl.SaveChanges(false); RadTreeNode newNode = new RadTreeNode(sourceNode.Text, sourceNode.Value); AddChilds(newNode, sourceNode); destNode.Nodes.Add(newNode); destNode.ExpandChildNodes(); if (!sourceNode.Equals(srcTree.Nodes[0])) { sourceNode.Remove(); } }
protected virtual void PerformDragDropCore( DropPosition position, RadTreeNode targetNode, List <RadTreeNode> draggedNodes) { RadTreeNode parent = targetNode.Parent; RadTreeNodeCollection nodes = targetNode.TreeViewElement.Nodes; if (parent != null) { nodes = parent.Nodes; } bool flag = position == DropPosition.BeforeNode; int index1 = nodes.IndexOf(targetNode); if (!flag && index1 + 1 <= nodes.Count) { ++index1; } bool isCopyingNodes = this.IsCopyingNodes; int index2 = 0; while (index2 < draggedNodes.Count) { if (!this.OnDragEnding(position, draggedNodes[index2], targetNode)) { draggedNodes.RemoveAt(index2); } else { ++index2; } } if (this.owner.bindingProvider.CanDrop || targetNode.treeView != null && targetNode.treeView.bindingProvider.CanDrop) { this.owner.bindingProvider.DropNodes(targetNode.Parent, draggedNodes); foreach (RadTreeNode draggedNode in draggedNodes) { this.owner.OnDragEnded(new RadTreeViewDragEventArgs(draggedNode, targetNode)); } } else { foreach (RadTreeNode draggedNode in draggedNodes) { RadTreeNode radTreeNode = draggedNode; if (radTreeNode.Parent == parent && radTreeNode.TreeViewElement == targetNode.TreeViewElement && nodes.IndexOf(radTreeNode) < index1) { --index1; } if (isCopyingNodes) { radTreeNode = this.CreateTreeNode(radTreeNode); } else { radTreeNode.Remove(); } nodes.Insert(index1, radTreeNode); ++index1; this.owner.OnDragEnded(new RadTreeViewDragEventArgs(radTreeNode, targetNode)); } } }
protected override void OnPreviewDragDrop(RadDropEventArgs e) { base.OnPreviewDragDrop(e); if (this.CancelPreviewDragDrop(e)) { return; } bool flag1 = this.owner.Scroller.Traverser.Current == this.draggedNode; RadTreeNode radTreeNode1 = (RadTreeNode)null; if (flag1) { radTreeNode1 = this.draggedNode.NextNode ?? this.draggedNode.PrevNode; } TreeNodeElement hitTarget = e.HitTarget as TreeNodeElement; RadTreeViewElement radTreeViewElement = hitTarget == null ? e.HitTarget as RadTreeViewElement : hitTarget.TreeViewElement; List <RadTreeNode> selectedNodes = this.GetSelectedNodes(this.draggedNode); List <RadTreeNode> draggedNodes = this.GetDraggedNodes(this.draggedNode); bool flag2 = radTreeViewElement != null && radTreeViewElement != this.owner; radTreeViewElement?.BeginUpdate(); if (flag2) { this.owner.BeginUpdate(); } if (hitTarget != null && hitTarget.Data != null) { this.PerformDragDrop(e.DropLocation, hitTarget, draggedNodes); } else if (radTreeViewElement != null) { bool isCopyingNodes = this.IsCopyingNodes; foreach (RadTreeNode radTreeNode2 in draggedNodes) { RadTreeNode radTreeNode3 = radTreeNode2; if (this.OnDragEnding(DropPosition.AsChildNode, radTreeNode3, (RadTreeNode)null)) { if (isCopyingNodes) { radTreeNode3 = this.CreateTreeNode(radTreeNode3); } else { radTreeNode3.Remove(); } radTreeViewElement.Nodes.Add(radTreeNode3); this.owner.OnDragEnded(new RadTreeViewDragEventArgs(radTreeNode3, (RadTreeNode)null)); } } } else if (draggedNodes.Count > 0) { this.owner.OnDragEnded(new RadTreeViewDragEventArgs(draggedNodes[0], (RadTreeNode)null)); } if (flag2) { this.owner.EndUpdate(); } if (flag1) { this.owner.Scroller.ScrollToItem(radTreeNode1); } if (radTreeViewElement == null) { return; } radTreeViewElement.EndUpdate(); radTreeViewElement.SelectedNode = this.draggedNode; foreach (RadTreeNode radTreeNode2 in draggedNodes) { radTreeNode2.Selected = true; } foreach (RadTreeNode radTreeNode2 in selectedNodes) { radTreeNode2.Selected = true; } }
/// <summary> /// Updates the details of the node or adds a new item to items collection if the node is not found. /// </summary> /// <param name="parentNodeValue">The value of the parent node.</param> /// <param name="nodeValue">The value to find node.</param> /// <param name="nodeText">The node text.</param> /// <param name="nodeCategory">The node category.</param> public void SaveNode(string parentNodeValue, string nodeValue, string nodeText, string nodeCategory) { if (parentNodeValue == null) { parentNodeValue = string.Empty; } if (nodeCategory == null) { nodeCategory = string.Empty; } RadTreeNode parentNode = this.FindNodeByValue(parentNodeValue); RadTreeNode node = this.FindNodeByValue(nodeValue); RadTreeNode[] childNodes = null; bool added = true; string parentNodeValueOld = string.Empty; if (node != null) { added = false; if (node.ParentNode != null) { parentNodeValueOld = node.ParentNode.Value; } if (parentNodeValueOld == null) { parentNodeValueOld = string.Empty; } node.Text = nodeText; if (string.Compare(parentNodeValue, parentNodeValueOld, true, CultureInfo.CurrentCulture) != 0) { childNodes = new RadTreeNode[node.Nodes.Count]; node.Nodes.CopyTo(childNodes, 0); node.Remove(); node = null; added = true; } } if (node == null) { node = new RadTreeNode(nodeText, nodeValue); } node.Category = nodeCategory; if (childNodes != null) { foreach (RadTreeNode childNode in childNodes) { node.Nodes.Add(childNode); } } if (parentNode != null) { if (string.Compare(parentNodeValue, parentNodeValueOld, true, CultureInfo.CurrentCulture) != 0) { parentNode.Nodes.Add(node); } } else if (added) { this.Nodes.Add(node); } node.ExpandParentNodes(); }
private void DeleteAndRefreshPage(RadTreeNode node) { String fullpath = this.GetNodeUrl(node); CmsPage page = PageManager.Instance.GetLatestPage(fullpath); if (page == null) { page = new CmsPage(); page.Url = fullpath; page.UrlHash = TextHash.MD5(page.Url).Value; } PageManager.Instance.DeleteAll(page); node.Remove(); }
private void DeleteAndRefreshFolder(RadTreeNode node) { String fullpath = this.GetNodeUrl(node); CmsSitePath folder = CmsSiteMap.Instance.GetPath(fullpath); PageManager.Instance.DeleteFolder(folder); node.Remove(); }
protected void RadTreeView1_ContextMenuItemClick(object sender, RadTreeViewContextMenuEventArgs e) { RadTreeNode clickedNode = e.Node; var nodoA = treeEstructura.Nodes[0]; var hijosPrimerNodo = listEstructura.Where(x => x.Nivel == 1).ToList(); if (e.MenuItem.Value.StartsWith("[ACYS]")) { var strValue = e.MenuItem.Value; strValue = strValue.Replace("[ACYS]", ""); int idACYS = Int32.Parse(strValue); CN_CatCNac_Estructura cm_EstrACYS = new CN_CatCNac_Estructura(model); CatCNac_Estructura estACYS = new CatCNac_Estructura(); if (clickedNode.Level == nivelMax && nivelMax >= 1) { RadMenuItem itemPadre = ((RadMenuItem)(e.MenuItem.Owner)); itemPadre.Value = itemPadre.Value.Replace("Asignar", ""); estACYS.Id = Int32.Parse(clickedNode.Value); estACYS.Nivel_ACYS = 1; estACYS.id_Acys = idACYS; int id = cm_EstrACYS.CambiarNivel(estACYS); var itemEstr = listEstructura.Where(x => x.Id == estACYS.Id).FirstOrDefault(); itemEstr.Nivel_ACYS = estACYS.Nivel_ACYS; itemEstr.id_Acys = idACYS; } else { AsignarACYS(ref clickedNode, clickedNode.Level, idACYS); } AgregarControles(ref nodoA, hijosPrimerNodo, null); } else { switch (e.MenuItem.Value) { case "Nuevo": RadTreeNode nodoNuevo = new RadTreeNode(); nodoNuevo.Selected = true; nodoNuevo.ImageUrl = clickedNode.ImageUrl; clickedNode.Nodes.Add(nodoNuevo); clickedNode.Expanded = true; //set node's value so we can find it in startNodeInEditMode nodoNuevo.Value = "Nuevo - " + Guid.NewGuid().ToString(); StartNodeInEditMode(nodoNuevo.Value); AgregarControles(ref nodoA, hijosPrimerNodo, nodoNuevo); break; case "Asignar": AsignarACYS(ref clickedNode, clickedNode.Level, 1); AgregarControles(ref nodoA, hijosPrimerNodo, null); break; case "Asignar1": CN_CatCNac_Estructura cm_Estr1 = new CN_CatCNac_Estructura(model); CatCNac_Estructura est1 = new CatCNac_Estructura(); if (clickedNode.Level == nivelMax && nivelMax >= 1) { est1.Id = Int32.Parse(clickedNode.Value); est1.Nivel_ACYS = 1; int id = cm_Estr1.CambiarNivel(est1); var itemEstr = listEstructura.Where(x => x.Id == est1.Id).FirstOrDefault(); itemEstr.Nivel_ACYS = 1; } AgregarControles(ref nodoA, hijosPrimerNodo, null); break; case "Asignar2": CN_CatCNac_Estructura cm_Estr2 = new CN_CatCNac_Estructura(model); CatCNac_Estructura est2 = new CatCNac_Estructura(); if (clickedNode.Level == nivelMax && nivelMax >= 2) { est2.Id = Int32.Parse(clickedNode.Value); est2.Nivel_ACYS = 2; int id = cm_Estr2.CambiarNivel(est2); var itemEstr = listEstructura.Where(x => x.Id == est2.Id).FirstOrDefault(); itemEstr.Nivel_ACYS = 2; } AgregarControles(ref nodoA, hijosPrimerNodo, null); break; case "Asignar3": CN_CatCNac_Estructura cm_Estr3 = new CN_CatCNac_Estructura(model); CatCNac_Estructura est3 = new CatCNac_Estructura(); if (clickedNode.Level == nivelMax && nivelMax >= 3) { est3.Id = Int32.Parse(clickedNode.Value); est3.Nivel_ACYS = 3; int id = cm_Estr3.CambiarNivel(est3); var itemEstr = listEstructura.Where(x => x.Id == est3.Id).FirstOrDefault(); itemEstr.Nivel_ACYS = 3; } AgregarControles(ref nodoA, hijosPrimerNodo, null); break; case "Asignar4": CN_CatCNac_Estructura cm_Estr4 = new CN_CatCNac_Estructura(model); CatCNac_Estructura est4 = new CatCNac_Estructura(); if (clickedNode.Level == nivelMax && nivelMax >= 4) { est4.Id = Int32.Parse(clickedNode.Value); est4.Nivel_ACYS = 4; int id = cm_Estr4.CambiarNivel(est4); var itemEstr = listEstructura.Where(x => x.Id == est4.Id).FirstOrDefault(); itemEstr.Nivel_ACYS = 4; } AgregarControles(ref nodoA, hijosPrimerNodo, null); break; case "Borrar": clickedNode.Remove(); CN_CatCNac_Estructura cm_EstrA = new CN_CatCNac_Estructura(model); var estrA = new CatCNac_Estructura(); estrA.Id = Int32.Parse(clickedNode.Value); cm_EstrA.Borrar(estrA); listEstructura.Remove(estrA); AgregarControles(ref nodoA, hijosPrimerNodo, null); break; default: CN_CatCNac_Estructura cm_EstrD = new CN_CatCNac_Estructura(model); CatCNac_Estructura estD = new CatCNac_Estructura(); if (clickedNode.Level == nivelMax && e.MenuItem.Value != "") { estD.Id = Int32.Parse(clickedNode.Value); estD.Sucursal = Int32.Parse(e.MenuItem.Value); estD.NombreSucursal = e.MenuItem.Text; int id = cm_EstrD.CambiarSucursal(estD); var itemEstr = listEstructura.Where(x => x.Id == estD.Id).FirstOrDefault(); itemEstr.Sucursal = Int32.Parse(e.MenuItem.Value); itemEstr.NombreSucursal = e.MenuItem.Text; } AgregarControles(ref nodoA, hijosPrimerNodo, null); break; } } }