public static void DoPaste(PasteDataSourceEnum pdstype, PasteAsEnum patype, string targetId, params object[] pasteIds) { if (!String.IsNullOrEmpty(targetId) && pasteIds.Length > 0) { IList <SysEnumeration> allnodes = SysEnumeration.FindAllByPrimaryKeys(pasteIds); IList <SysEnumeration> nodes = FilterChildNodes(allnodes); // 只提取最高节点或无父子关联的节点进行粘贴 foreach (SysEnumeration tnode in nodes) { switch (pdstype) { case PasteDataSourceEnum.Copy: if (patype == PasteAsEnum.Sibling) { tnode.CopyAsSibling(targetId); } else if (patype == PasteAsEnum.Child) { tnode.CopyAsChild(targetId); } break; case PasteDataSourceEnum.Cut: if (patype == PasteAsEnum.Sibling) { tnode.MoveAsSibling(targetId); } else if (patype == PasteAsEnum.Child) { if (tnode.ParentID == targetId) { tnode.ChangePosition(0); } else { tnode.MoveAsChild(targetId); } } break; } } } }
private void DoPaste() { IList <string> idList = RequestData.GetList <string>("IdList"); string type = RequestData.Get <string>("type", String.Empty); string tid = RequestData.Get <string>("tid", String.Empty); // 目标节点id string pdstype = RequestData.Get <string>("pdstype", String.Empty); // 粘贴数据来源类型 if (!String.IsNullOrEmpty(tid)) { A_TaskWBS target = A_TaskWBS.Find(tid); PasteDataSourceEnum pdsenum = PasteDataSourceEnum.Unknown; PasteAsEnum paenum = PasteAsEnum.Other; if (pdstype == "cut") { pdsenum = PasteDataSourceEnum.Cut; } else if (pdstype == "copy") { pdsenum = PasteDataSourceEnum.Copy; } if (type == "sib") { paenum = PasteAsEnum.Sibling; } else if (type == "sub") { paenum = PasteAsEnum.Child; } if (pdsenum != PasteDataSourceEnum.Unknown && paenum != PasteAsEnum.Other) { // 粘贴操作 A_TaskWBS.DoPaste(pdsenum, paenum, tid, idList.ToArray()); } } }