In this blog we will know how to create treeview nodes and corresponding sub treeview nodes from the database.

Scenario: -

I have two tables in Sql Server Database:

Table1: Category - Columns are Category_ID, CategoryName

Table2: SubCategory –Columns are SubCategory_ID, SubCategoryName, Category_ID

Category Table Data:

1 Item1

2 Item2

3 Item3

4 Item4

SubCategory Table Data

1 SubItem1 1

2 SubItem2 1

3 SubItem3 1

4 SubItem4 2

5 SubItem5 2

6 SubItem6 3

7 Subitem7 3

8 Subitem8 4

Output

Code

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TreeView_in_ASP.NET._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

<title>Untitled Page</title>

</head>

<body>

<form id="form1" runat="server">

<div>

<asp:treeview ID="Treeview1" runat="server"></asp:treeview>

</div>

</form>

</body>

</html>

using System;

using System.Collections;

using System.Configuration;

using System.Data;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

using System.Data.SqlClient;

namespace TreeView_in_ASP.NET

{

public partial class _Default : System.Web.UI.Page

{

string strConnString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

string str;

SqlCommand com, com1;

protected void Page_Load(object sender, EventArgs e)

{

bindtreeview();

}

void bindtreeview()

{

SqlConnection con = new SqlConnection(strConnString);

con.Open();

str = "Select * from Category";

com = new SqlCommand(str, con);

SqlDataReader reader = com.ExecuteReader();

com.Dispose();

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

int count = 0;

while (reader.Read())

{

ParentNode[count, 0] = reader.GetValue(reader.GetOrdinal("Category_ID")).ToString();

ParentNode[count++, 1] = reader.GetValue(reader.GetOrdinal("CategoryName")).ToString();

}

reader.Close();

for (int loop = 0; loop < count; loop++)

{

TreeNode root = new TreeNode();

root.Text = ParentNode[loop, 1];

com1 = new SqlCommand("Select * from SubCategory where Category_ID =" + ParentNode[loop, 0], con);

SqlDataReader reader1 = com1.ExecuteReader();

while (reader1.Read())

{

TreeNode child = new TreeNode();

child.Text = reader1.GetValue(reader1.GetOrdinal("SubCategoryName")).ToString();

root.ChildNodes.Add(child);

}

reader1.Close();

Treeview1.Nodes.Add(root);

}

Treeview1.CollapseAll();

con.Close();

}

}

}

Thanks for reading