Click here to Skip to main content
15,921,660 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi all,

I have a treeview with a root node,a child node and subchild nodes.On click of a subchild node I need to get that node value and its parent node value in a popup.I will .Any help will really appreciated .Thanks in advance.


*Root Node 
      
            1.child node 1
                       *(subchild node 1)  
                       *(subchild node 2)  

            2.child node 2
                    
                       *(subchild node 1)  
                       *(subchild node 2) 


On subchild node click I need to get the node values in popup extender .However it is showing null.

What I have tried:

 <asp:TreeView ID="TreeView1" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged" EnableClientScript="true"  PopulateNodesFromClient="true"                              OnTreeNodePopulate="calltree" Font-Size="8pt"   runat="server" ShowLines="True" HoverNodeStyle-Font-Underline="True" SelectedNodeStyle-Font-Bold="True"  ParentNodeStyle-ForeColor="Black">
<Nodes>
<asp:TreeNode Text="Chart Of Cars" Selected="true" SelectAction="Expand" PopulateOnDemand="true"/>
 </Nodes>
                                                    </asp:TreeView>



 public void calltree(object sender, TreeNodeEventArgs e)
       {

           switch (e.Node.Depth)
           {
               case 0:
                   HeaderTitle(e.Node);
                   break;
               case 1:
                    LinkURL(e.Node);
                    break;

               default:
                   break;
           }
       }

       public void HeaderTitle(TreeNode node)
       {
           DataSet ds_ParentNode = objcon.GetDataSet("select distinct ProfileID,profilename from profile
");

           foreach (DataRow row in ds_ParentNode.Tables[0].Rows)
           {
               TreeNode newNode = new TreeNode();
               newNode.Text = row["ProfileID"].ToString() + ' ' + row["profilename"].ToString();
               newNode.Value = row["ProfileID"].ToString();

               newNode.Expanded = false;
               newNode.SelectAction = TreeNodeSelectAction.Expand;
               newNode.PopulateOnDemand = true;
               node.ChildNodes.Add(newNode);
           }

       }

     public void LinkURL(TreeNode node)
        {
           DataSet ds_ParentNode = objcon.GetDataSet("select distinct ProfileID,profilename from profile
");

           foreach (DataRow row in ds_ParentNode.Tables[0].Rows)
           {
               TreeNode newNode = new TreeNode();
               newNode.Text = row["ProfileID"].ToString() + ' ' + row["profilename"].ToString();
               newNode.Value = row["ProfileID"].ToString();
         newNode.ImageUrl = "~/images/office2003_contacts.gif";

                newNode.Expand();
               
                newNode.Expanded = true;
                newNode.PopulateOnDemand = false;
                node.ChildNodes.Add(newNode);
            }

        }
<pre> protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
        {
            
            int index = TreeView1.Nodes.IndexOf(TreeView1.SelectedNode); 
          
              
           TreeView1.SelectedNode.Selected = true;
            if (TreeView1.SelectedNode.Value != "")
            {
                lbl_supname.Text = TreeView1.SelectedNode.Value;
                lbl_drugname.Text = "";
                mpe_First.Show();
                pnl_First.Visible = true;
                UpdatePanel1.Update();
                UpdatePanel1_1.Update();
            }
            else
            {
                mpe_First.Hide();
                //UpdatePanel1.Update();
                pnl_First.Visible = false;
                UpdatePanel1.Update();
            }
            
        }
Posted
Updated 29-Jul-18 11:08am

1 solution

You can recursively locate parent nodes using a node's "Parent" property:

TreeNode.Parent Property (System.Web.UI.WebControls)[^]
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900