How to use Treeview control in Asp.net applications

Hi friends, in this article I would like to explain how to bind data to Tree View control in asp.net using c#. From last few weeks we are getting so many requests about tree view control example in asp.net applications. This time we are going to explain a basic tutorial about treeview control for beginner’s.
Please follow the steps
Step :1
 In this article I am considered States and its districts as nodes and its child nodes. Let us consider a sql table as below:
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[ExampleOnTreeView]( [Id] [int] NULL, [StateId] [int] NULL, [StateName] [varchar](50) NULL ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO
 Please find the below screen shot(ExampleTreeViewTable.jpg) for sample data that I shown in tree view output.

Step 2:
Then,coming to code for TreeView control in asp.net:
In .aspx page:
<%@ Page Title="" Language="C#" AutoEventWireup="true" CodeFile="TreeViewExample.aspx.cs" Inherits="Year" %>
Step 3:
In .aspx.cs page:
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
public partial class TreeViewExample : System.Web.UI.Page
{
    SqlConnection con;
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            con = new SqlConnection(ConfigurationManager.ConnectionStrings["TestConnection"].ConnectionString);
            if (!Page.IsPostBack)
            {
                //Getting State Names from the database table(ExampleOnTreeView).
                SqlCommand cmdStates = new SqlCommand("Select Id,StateName from ExampleOnTreeView where StateId is null", con); 
                DataSet dsStates = new DataSet();
                SqlDataAdapter daStates = new SqlDataAdapter(cmdStates);
                daStates.Fill(dsStates);
                int StatesCount = dsStates.Tables[0].Rows.Count;
                string[] Names = new string[StatesCount];
                int i = 0;
                foreach (DataRow drStates in dsStates.Tables[0].Rows)
                {
                    TreeViewStatesAndDistricts.Nodes.Add(new TreeNode(drStates["StateName"].ToString(), drStates["Id"].ToString()));
                    Names[i] = drStates["id"].ToString();
                    i++;
                }
                if (i > 0)
                {
                    // Getting District Names from the existing state.
                    string DistrictsQuery = "";
                    i = 0;
                    for (int j = 0; j < StatesCount; j++)
                    {
                        if (j == 0)
                            DistrictsQuery = "StateId = " + Names[j];
                        else
                            DistrictsQuery += " or StateId = " + Names[j];
                    }
                    SqlCommand cmdDistricts = new SqlCommand("Select Id,StateId,StateName from ExampleOnTreeView where " + DistrictsQuery, con);
                    DataSet dsDistricts = new DataSet();
                    SqlDataAdapter daDistricts = new SqlDataAdapter(cmdDistricts);
                    daDistricts.Fill(dsDistricts);
                    StatesCount = dsDistricts.Tables[0].Rows.Count;
                    Names = new string[StatesCount];
                    foreach (DataRow drDistricts in dsDistricts.Tables[0].Rows)
                    {
                        TreeViewStatesAndDistricts.FindNode(drDistricts["StateId"].ToString()).ChildNodes.Add(new TreeNode(drDistricts["StateName"].ToString(), drDistricts["Id"].ToString()));
                    }
                }
            }
        }
        catch
        { 
        
        }
    }   
}
After executing the above code by pressing (F5) it will generate the States & districts in Tree View format as below (ExampleOnTreeView.jpg): 
Labels: .Net Tutorials, Aspnet, C#, Custom Controls

<< Home