码迷,mamicode.com
首页 > 其他好文 > 详细

将部门数据(参照U8 Department表结构)绑定到TreeView

时间:2015-08-27 22:31:55      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

技术分享
DataSet objDataSet = new DataSet();
public RFrmDepartment()
{
    InitializeComponent();
}

 

private void RFrmDepartment_Load(object sender, EventArgs e)
{
    string sqlCmd = "Select * from Department order by DepGrade";
    DataTable dt= DbHelperSQL.GetDataTable(sqlCmd);
    dt.TableName = "Department";
    objDataSet.Tables.Add(dt);
    TreeNode rootNode = new TreeNode("某公司部门管理");
    treeView1.Nodes.Add(rootNode);
    BindTreeNodeData(rootNode,"",0,"1");
}

        /// <summary>
       /// 将数据绑定到treeView控件上
       /// </summary>
       /// <param name="ParentNode">父节点</param>
       /// <param name="pid">父Id(指DepId)</param>
       /// <param name="Plen">父id(指DepId)长度</param>
       /// <param name="level">级别</param>

private void BindTreeNodeData(TreeNode ParentNode,string pid,int Plen,string level)
{     //如果为第一级别直接添加到父节点
        if (level=="1")
    {
        DataRow[] rows = objDataSet.Tables["Department"].Select("DepGrade=" + level);
        if (rows.Length != 0)
        {
            foreach (DataRow dr in rows)
            {
                string parentId = dr["DepId"].ToString().Trim();
                int len = parentId.Length;
                TreeNode node = new TreeNode();
                node.Text = dr["DepName"].ToString();
                ParentNode.Nodes.Add(node);
                string levels = (int.Parse(dr["DepGrade"].ToString()) + 1).ToString();
                BindTreeNodeData(node, parentId, len, levels);
            }
        }
        else return;
    }
    else  //如果为非第一级别,则从第一位开始,长度为“父DepId”截取“DepId” 判断是否相等。
    {
        DataRow[] rows = objDataSet.Tables["Department"].Select("DepGrade=" + level);
        if (rows.Length != 0)
        {
            foreach (DataRow dr in rows)
            {
                string depId = dr["DepId"].ToString().Substring(0, Plen);
                if (depId == pid)
                {
                    TreeNode node = new TreeNode();
                    node.Text = dr["DepName"].ToString();
                    string parentId = dr["DepId"].ToString().Trim();
                    int len = parentId.Length;
                    ParentNode.Nodes.Add(node);
                    string levels = (int.Parse(dr["DepGrade"].ToString()) + 1).ToString();
                    BindTreeNodeData(node, parentId, len, levels);
                }

            }
        }
        else return;
    }
}

技术分享

说明:本人技术水平不好,此篇专供大家指正。请大家提供更好的方法。谢谢。

将部门数据(参照U8 Department表结构)绑定到TreeView

标签:

原文地址:http://www.cnblogs.com/Kokeng/p/4764569.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!