public void AddTree1(int AID, TreeNode pNode)
        {
            DataTable dt = new DataTable();
            dt = AccessFactory.getDataTable(string.Format("select * from Anotomical "));
            DataView dvTree = new DataView(dt);
            foreach (DataRowView row in dvTree)
            {
                TreeNode node = new TreeNode();
                node.Text = row["description"].ToString();
                node.Name = row["description_en"].ToString();
                BindSubTree1(Convert.ToInt32(row["aid"].ToString()), node);
                this.treeView1.Nodes.Add(node);
            }
        }
        private void BindSubTree1(int Aid, TreeNode PNode)
        {
            DataTable subdt = new DataTable();
            subdt = AccessFactory.getDataTable(string.Format("select * from Pathological where aid='{0}'  ", Aid));
            if (subdt.Rows.Count != 0 && PNode != null)
            {
                foreach (DataRow dr in subdt.Rows)
                {
                    TreeNode subNode = new TreeNode();
                    subNode.Text = dr["description"].ToString();
                    subNode.Name = dr["description_en"].ToString();
                    BindNextSbuTree1(Convert.ToInt32(dr["aid"]), Convert.ToInt32(dr["pid"]), subNode);
                    PNode.Nodes.Add(subNode);
                }
            }
        }
        private void BindNextSbuTree1(int aid, int pid, TreeNode pnode)
        {
            DataTable subdt = new DataTable();
            subdt = AccessFactory.getDataTable(string.Format("select * from SubPathological where aid='{0}' and pid='{1}'", aid, pid));
            if (subdt.Rows.Count != 0 && pnode != null)
            {
                foreach (DataRow dr in subdt.Rows)
                {
                    TreeNode subnode = new TreeNode();
                    subnode.Text = dr["description"].ToString();
                    subnode.Name = dr["description_en"].ToString();
                   // subnode.Tag = dr["aid"].ToString();
                    subnode.Tag = dr["pid"].ToString();
                    pnode.Nodes.Add(subnode);
                }
            }
        }这里是我加载的treeview控件,我现在想得到选中的节点的父节点aid和子节点pid,怎么获取

解决方案 »

  1.   

    自己先顶下,怎么获取,并且判断是父节点还子节点,父节点就只获得aid 子节点就是获取aid和pid
      

  2.   

     // subnode.Tag = dr["aid"].ToString()
    你把这句留下就可以了
    父节点id=treeView1.SelectedNode.Parent.aid
      

  3.   

    首先,你得把aid和pid都得绑定到每个节点里,node.Tag就只有一个,怎么办?你直接把DataRow绑定到node.Tag上就可以了。如:node.Tag= dr;
    选中某个node的时候
    TreeNode node = treeView1.SelectedNode;
    DataRow dr = node.Tag as DataRow; 
    string aid =string.Empty();
    string pid = string.Empty();
    if( node.Parent!=null) //说明是子节点
    {
       aid = dr["aid"].ToString();
       pid = dr["pid"].ToString();
    }
    else  //根节点
    {
       aid=dr["aid"].ToString();
    }