首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在树形视图中添加ID

如何在树形视图中添加ID
EN

Stack Overflow用户
提问于 2013-03-19 08:26:33
回答 1查看 5K关注 0票数 4

我有一个关于树视图控件的问题。我对C#非常陌生,并且一直坚持如何将ID添加到相应的树节点中。我不确定这行代码是否包含ID,如果不是,那么我应该包含什么。我想获取所选节点的ID。我该怎么做,请告诉我。我的代码如下-

提前谢谢。

代码语言:javascript
运行
复制
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);

        }
    }
EN

回答 1

Stack Overflow用户

发布于 2013-03-19 09:03:29

我假设,根据代码,您正在使用WinForms,所以我的答案将基于这一假设。ThreeNode对象具有object类型的Tag属性(类似于WinForms中的任何Control类),您可以在其中存储所需的任何内容,但在以后要使用它时,应小心将其转换回类型。所以你可以像这样修改你的代码:

代码语言:javascript
运行
复制
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());
        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类型):

代码语言:javascript
运行
复制
int ID = (int)tn.Tag;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15489431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档