Home / ASP.NET Wiki / Javascript / AJAX / AJAX Control Toolkit / ASP.NET HTML Editor - Upload images / Dynamically Binding Values to TreeView Control

Dynamically Binding Values to TreeView Control

 Rate It (2)

First Create Two Tables ParentTable and ChildTable

ParentTable

-->ParentId as Primary Key

-->ParentName

ChildTable

-->ParentId as FOREIGN KEY from ParentTable

-->ChildName

-----------------------------------------------------------------------

Create Url SqlConnection...

Then Use This Function to fill TreeView Control


public void fill_Tree()
{
        try
        {
            TreeView1.Nodes.Clear();
            if (con.State == ConnectionState.Closed)
                con.Open();

            SqlCommand SqlCmd = new SqlCommand("Select * from ParentTable", con);
            SqlDataReader Sdr = SqlCmd.ExecuteReader();

            SqlCmd.Dispose();


            string[,] ParentNode = new string[100, 2];

            int count = 0;

            while (Sdr.Read())
            {
                ParentNode[count, 0] = Sdr.GetValue(Sdr.GetOrdinal("ParentID")).ToString();
                ParentNode[count++, 1] = Sdr.GetValue(Sdr.GetOrdinal("ParentName")).ToString();
            }

            Sdr.Close();


            for (int loop = 0; loop < count; loop++)
            {
                TreeNode root = new TreeNode();

                root.Text = ParentNode[loop, 1];
                root.Target = "_blank";
                root.NavigateUrl = "ParentPage.aspx?NodeName=" + root.Text + "";


                SqlCommand Module_SqlCmd = new SqlCommand("Select * from ChildTable where ParentId =" + ParentNode[loop, 0], con);
                SqlDataReader Module_Sdr = Module_SqlCmd.ExecuteReader();

                while (Module_Sdr.Read())
                {
                    TreeNode child = new TreeNode();

                    child.Text = Module_Sdr.GetValue(Module_Sdr.GetOrdinal("ChildName")).ToString();
                    child.Target = "_blank";
                    child.NavigateUrl = "ChildPage.aspx?NodeName=" + child.Text + "";

                    root.ChildNodes.Add(child);
                }

                Module_Sdr.Close();

                TreeView1.Nodes.Add(root);
            }


            TreeView1.ExpandAll();
            con.Close();
        }
        catch (Exception ex)
        {
            this.ErrorState = true;
            this.ErrorMsg = ex.Message;
        }
}

protected void Page_Load(object sender, EventArgs e)
{
        if (!IsPostBack == true)
        {
            fill_Tree();
        }
}

Revision number 2, Friday, June 24, 2011 4:16:54 PM by evanorue

Comments

One little tip: I've problem in linq with the foreignKey, but I set it in the table and then all be fine! Good Luck! and Thanks for this article!

Shortcuts

Table of Contents

Top Wiki Contributors

(last 30 days)

  1. abiruban (1)