微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我有一个关于树视图控件的问题.我是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;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐