加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何在树视图中添加ID

发布时间:2020-12-15 21:49:09 所属栏目:百科 来源:网络整理
导读:我有一个关于树视图控件的问题.我是C#的新手,并坚持如何将ID添加到相应的树节点.我不确定这行代码是否包含ID,如果没有,那么我应该包括什么.我想获取所选节点的ID.我如何继续请告诉我.我的代码如下 – 提前致谢. private void PopulateTreeView() { treeDepar
我有一个关于树视图控件的问题.我是C#的新手,并坚持如何将ID添加到相应的树节点.我不确定这行代码是否包含ID,如果没有,那么我应该包括什么.我想获取所选节点的ID.我如何继续请告诉我.我的代码如下 –

提前致谢.

private void PopulateTreeView()
    {
        treeDepartments.Nodes.Clear();

        String strConn = "Server =server;Database =DB;Integrated Security = True;";
        SqlConnection conn = new SqlConnection(strConn);
        SqlDataAdapter da = new SqlDataAdapter("Select * from tSubDepartments",conn);
        SqlDataAdapter daCategories = new SqlDataAdapter("Select * from tDepartments",conn);
        da.Fill(ds,"tSubDepartments");
        daCategories.Fill(ds,"tDepartments");

        ds.Relations.Add("Dept_SubDept",ds.Tables["tDepartments"].Columns["dpCode"],ds.Tables["tSubDepartments"].Columns["dpCode"]);
        foreach (DataRow dr in ds.Tables["tDepartments"].Rows)
        {

            TreeNode tn = new TreeNode(dr["dpName"].ToString());
            foreach (DataRow drChild in dr.GetChildRows("Dept_SubDept"))
            {

                tn.Nodes.Add(drChild["sdName"].ToString());

            }

            treeDepartments.Nodes.Add(tn);

        }
    }

解决方法

我认为,根据代码,你在WinForms工作,所以我的答案将基于这个假设.
ThreeNode对象具有类型对象的Tag属性(类似于WinForms中的任何Control类),您可以在其中存储您想要的任何内容,但是当您想要稍后使用它时,应该小心地将其强制转换为类型.所以你可以改变你的代码:

private void PopulateTreeView()
{
    treeDepartments.Nodes.Clear();

    String strConn = "Server =server;Database =DB;Integrated Security = True;";
    SqlConnection conn = new SqlConnection(strConn);
    SqlDataAdapter da = new SqlDataAdapter("Select * from tSubDepartments",conn);
    SqlDataAdapter daCategories = new SqlDataAdapter("Select * from tDepartments",conn);
    da.Fill(ds,"tSubDepartments");
    daCategories.Fill(ds,"tDepartments");

    ds.Relations.Add("Dept_SubDept",ds.Tables["tSubDepartments"].Columns["dpCode"]);
    foreach (DataRow dr in ds.Tables["tDepartments"].Rows)
    {

        TreeNode tn = new TreeNode(dr["dpName"].ToString());
        tn.Tag = dr["dpID"]; //put the ID into the Tag property of the node
        foreach (DataRow drChild in dr.GetChildRows("Dept_SubDept"))
        {

             TreeNode childTn = new TreeNode(drChild["sdName"].ToString());
             childTn.Tag = drChild["sdID"];
             tn.Nodes.Add(childTn);

        }

        treeDepartments.Nodes.Add(tn);

    }
}

当你想要提取TreeNode的ID时,只需像这样使用它(假设ID是int类型):

int ID = (int)tn.Tag;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读