首页 新闻 会员 周边

关于DEV TreeList 多个节点拖拽的功能

0
悬赏园豆:10 [待解决问题]

在进行树节点多个拖拽的过程中,思路是这样的:先在Tree_DragEnter 事件里缓存下 需要拖拽的节点,然后再Tree_DragDrop 事件进行节点处理:

 TreeListHitInfo hitinfo = uxTreeList1.Tree.CalcHitInfo(uxTreeList1.Tree.PointToClient(new Point(e.X, e.Y)));
                TreeListNode node = hitinfo.Node;//当前需要拖拽到的节点
         
                DataTable dt_Src = this.uxTreeList1.Tree.DataSource as DataTable;
                List<DataRow> Lst_CCODE = dt_Src.AsEnumerable().Where(r => r["PCODE"].ToString() == CODE).ToList();
                string MAXCODE = Lst_CCODE.Count>0?Lst_CCODE.Max(r => r["CODE"].ToString()):null;
               
                foreach (MoveNode MNODE in Lst_Move_Node)
                {
                    int length = MNODE.CODE.Length;
                    List<DataRow> Lst_MNODEROW = dt_Src.AsEnumerable().Where(r => r["CODE"].ToString().StartsWith(MNODE.CODE) && r["CODE"].ToString().Length >= length).ToList();
                    DataRow FCODEROW = Lst_MNODEROW.Where(r => r["CODE"].ToString() == MNODE.CODE).FirstOrDefault();
                    DataRow NEWROW = dt_Src.NewRow();
                    NEWROW.ItemArray = FCODEROW.ItemArray;
                    NEWROW["PCODE"] = CODE;
                    MAXCODE = string.IsNullOrEmpty(MAXCODE) ? string.Format("{0}0001", CODE) : (Convert.ToInt64(MAXCODE) + 1).ToString().PadLeft((CODE.Length + 4), '0');
                    NEWROW["CODE"] = MAXCODE;
                    dt_Src.Rows.Remove(FCODEROW);
                    dt_Src.Rows.Add(NEWROW);
                    Lst_MNODEROW.Remove(FCODEROW);
                    dt_Src.AcceptChanges();
                    SetChildNodes(MNODE.CODE, Lst_MNODEROW, NEWROW["CODE"].ToString());
                }

                DataTable dt = dt_Src.Clone();
                foreach (DataRow item in dt_Src.Rows)
                {
                    dt.Rows.Add(item.ItemArray);
                }

    ///设定数据源       
this.uxTreeList1.SetDataSource(INMR_DB_LEVEL_Common.CODE, INMR_DB_LEVEL_Common.PCODE, INMR_DB_LEVEL_Common.NODECAPTION, INMR_DB_LEVEL_Common.CODE, dt);

在实际的拖拽过程中出现了 

在操作中没有选择cpi权重,可还是移动了,为什么呢

DEV
飞蛾扑火的主页 飞蛾扑火 | 初学一级 | 园豆:145
提问于:2013-04-02 21:19
< >
分享
所有回答(2)
0
当你个当 | 园豆:222 (菜鸟二级) | 2013-12-19 16:32
0

哥们我也遇到你这样的问题,你问题解决了吗,能否发个小例子给我啊,277011927@qq.com

男人要爽 | 园豆:6 (初学一级) | 2014-08-20 19:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册