DevExpress学习之Treelist递归添加节点实现部门上下级问题

 public void Bind()
        {
            string sql;
            this.treeList1.ClearNodes();
            sql = "select deptID,deptName from sys_tx_kqSystem_dept where TreeLevel = 2 order by deptID ";
            if (!DB.AF.execSql(sql, sqlconnOA, out dt))
            {
                MessageBox.Show("Error!");
                return;
            }
            if (dt.Rows.Count > 0)
            {

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    TreeListNode nodeTemp = treeList1.AppendNode(dt.Rows[i]["deptID"], null);
                    //nodeTemp.SetValue(treeList1.Columns[0], dt.Rows[i]["deptID"]);
                    nodeTemp.SetValue(treeList1.Columns[0], dt.Rows[i]["deptName"]);
                    nodeTemp.Tag = dt.Rows[i];
                    sql = "select deptID,deptName from sys_tx_kqSystem_dept where UpCode ='" + dt.Rows[i]["deptID"] + "'";
                    DataTable ds;
                    if (!DB.AF.execSql(sql, sqlconnOA, out ds))
                    {
                        MessageBox.Show("父:Error!");
                        return;
                    }
                    if (ds.Rows.Count > 0)
                        GetChildNode(nodeTemp, dt.Rows[i]["deptID"]);
                }
                
            }
        }
        public void GetChildNode(TreeListNode nodeTemp, object parent)
        {
            string sql = "select deptID,deptName from sys_tx_kqSystem_dept where UpCode=" + parent + " order by deptID";
            DataTable zi;
            if (!DB.AF.execSql(sql, sqlconnOA, out zi))
            {
                return;
            }
            if (zi.Rows.Count > 0)
            {
                for (int i = 0; i < zi.Rows.Count; i++)
                {
                    //MessageBox.Show("子:" + zi.Rows[i]["deptID"].ToString());
                    TreeListNode nodelist = nodeTemp.TreeList.AppendNode(zi.Rows[i]["deptID"], nodeTemp);
                    //nodelist.SetValue(treeList1.Columns[0], zi.Rows[i]["deptID"]);
                    nodelist.SetValue(treeList1.Columns[0], zi.Rows[i]["deptName"]);
                    nodelist.Tag = zi.Rows[i];
                    sql = "select deptID,deptName from sys_tx_kqSystem_dept where UpCode ='" + zi.Rows[i]["deptID"] + "'";
                    DataTable ds;
                    if (!DB.AF.execSql(sql, sqlconnOA, out ds))
                    {
                        MessageBox.Show("父1:Error!");
                        return;
                    }
                    if (ds.Rows.Count > 0)
                        GetChildNode(nodelist, zi.Rows[i]["deptID"]);
                }
            }
        }

效果图:

但是我这个语法加载速度还是很慢的,每次都得反应好长时间。听说可以结合josn先把数据放到前台,然后再怎么怎么的可以提高效率,这个后面再研究,等我琢磨出来了再更新。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值