First Create Class Of PageModules
using System;
using System.Data;using System.Configuration;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;
public class PageModules{public PageModules(){
//// TODO: Add constructor logic here//}#region /// <summary>/// Field to store ID/// </summary>private int _id;/// <summary>/// Field to store Menu Name/// </summary>private string _menuName;/// <summary>/// Field to store Page Url/// </summary>private string _pageUrl;/// <summary>/// Field to store Parent ID/// </summary>private int _parentId;/// <summary>/// Field to store Is Active/// </summary>private bool _isActive;/// <summary>/// Field to store Display Order/// </summary>private int _displayOrder;/// <summary>/// Field to store Create By/// </summary>private string _createBy;/// <summary>/// Field to store Create Date/// </summary>private DateTime _createDate;/// <summary>/// Field to store Update By/// </summary>private string _updateBy;/// <summary>/// Field to store Update Date/// </summary>private DateTime _updateDate;/// <summary>/// Field to store selected flag/// </summary>private bool _isSelected;#endregion#region /// <summary>/// Gets or Sets ID/// </summary>public int ID{
get { return _id; }set { _id = value; }}
/// <summary>/// Gets or Sets MenuName/// </summary>public string MenuName{
get { return _menuName; }set { _menuName = value; }}
/// <summary>/// Gets or Sets PageURL/// </summary>public string PageURL{
get { return _pageUrl; }set { _pageUrl = value; }}
/// <summary>/// Gets or Sets ParentID/// </summary>public int ParentID{
get { return _parentId; }set { _parentId = value; }}
/// <summary>/// Gets or Sets IsActive/// </summary>public bool IsActive{
get { return _isActive; }set { _isActive = value; }}
/// <summary>/// Gets or Sets DisplayOrder/// </summary>public int DisplayOrder{
get { return _displayOrder; }set { _displayOrder = value; }}
/// <summary>/// Gets or Sets CreateBy/// </summary>public string CreateBy{
get { return _createBy; }set { _createBy = value; }}
/// <summary>/// Gets or Sets CreateDate/// </summary>public DateTime CreateDate{
get { return _createDate; }set { _createDate = value; }}
/// <summary>/// Gets or Sets UpdateBy/// </summary>public string UpdateBy{
get { return _updateBy; }set { _updateBy = value; }}
/// <summary>/// Gets or Sets UpdateDate/// </summary>public DateTime UpdateDate{
get { return _updateDate; }set { _updateDate = value; }}
/// <summary>/// Gets or Sets IsSelected/// </summary>public bool IsSelected{
get { return _isSelected; }set { _isSelected = value; }}
#endregion
}
then design like this
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="one.aspx.cs" Inherits="one" %><!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></title></
head><
body><form id="form1" runat="server"><asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager><div>
</div><asp:UpdatePanel ID="UpdatePanel1" runat="server"><ContentTemplate>
<asp:TreeView ID="TreeView1" runat="server" ></asp:TreeView></ContentTemplate></asp:UpdatePanel></form></
body></
html>--
----------------------------------.aspx code------------------------------------------
using System;
SqlConnection con = new SqlConnection("database=master;data source=YOGENDRA;integrated security=true");
SqlCommand cmd;
protected void Page_Load(object sender, EventArgs e){
try{
if (!IsPostBack){
LoadMenu();
}
}
catch (Exception ex){
}
}
private void LoadMenu(){
List<PageModules> oListPageModules = null;
try{
oListPageModules = GetPageModule();
FillMenu(oListPageModules);
}
catch (Exception ex){
throw ex;}
}
public List<PageModules> GetPageModule(){
PageModules oPageModule = null;
List<PageModules> oPageModuleList = null;
// DataSet oDs = null;try{
//oDs = SqlHelper.ExecuteDataset(con, CommandType.Text, "select * from r_PageModule");con.Open();
cmd = new SqlCommand("select* from tbl", con);cmd.CommandType =
CommandType.Text;
SqlDataReader dr = cmd.ExecuteReader();
// dr = SqlHelper.ExecuteReader(con, CommandType.Text, "select * from menu22");if (dr != null){
oPageModuleList =
new List<PageModules>();
while (dr.Read()){
oPageModule =
new PageModules();
if (dr["id"] != null && dr["id"] != DBNull.Value){
oPageModule.ID =
int.Parse(dr["id"].ToString());}
if (dr["name"] != null && dr["name"] != DBNull.Value){
oPageModule.MenuName = dr[
"name"].ToString().Trim();}
if (dr["url"] != null && dr["url"] != DBNull.Value){
oPageModule.PageURL = dr[
"url"].ToString().Trim();}
if (dr["parentid"] != null && dr["parentid"] != DBNull.Value){
oPageModule.ParentID =
int.Parse(dr["parentid"].ToString());}
if (dr["displayorder"] != null && dr["displayorder"] != DBNull.Value){
oPageModule.DisplayOrder =
int.Parse(dr["displayorder"].ToString());}
oPageModuleList.Add(oPageModule);
}
dr.Close();
}
}
catch (Exception ex){
throw ex;}
finally{
con.Close();
}
return oPageModuleList;}
private void FillMenu(List<PageModules> oPageModulesList){
List<PageModules> oParentModules = null;
try{
// If Page modules is not nullif (oPageModulesList != null && oPageModulesList.Count > 0){
foreach (PageModules oPages in oPageModulesList){
if (oPages.ParentID == 0){
if (oParentModules == null)oParentModules =
new List<PageModules>();oParentModules.Add(oPages);
}
}
// If parent modules is not nullif (oParentModules != null){
// Sort parent modulesoParentModules.Sort(delegate(PageModules pm1, PageModules pm2){
return pm1.DisplayOrder.CompareTo(pm2.DisplayOrder);});
LoadPageModules(oParentModules, oPageModulesList);
}
}
}
catch (Exception ex){
throw ex;}
}
private void LoadPageModules(List<PageModules> oParentModules, List<PageModules> oPageModulesList){
TreeNode childMenuItem = null;
TreeNode parentMenuItem = null;
List<PageModules> oChildModules = null;
try{
// Iterate each parent moduleoParentModules.ForEach(delegate(PageModules oParentModule){
parentMenuItem =
new TreeNode();parentMenuItem.Text = oParentModule.MenuName;
parentMenuItem.Value = oParentModule.ID.ToString();
if (!string.IsNullOrEmpty(oParentModule.PageURL)){
parentMenuItem.NavigateUrl = ResolveUrl(oParentModule.PageURL);
}
else{
parentMenuItem.Selected = false;}
foreach (PageModules oChildPages in oPageModulesList){
if (oChildPages.ParentID == oParentModule.ID){
if (oChildModules == null)oChildModules =
new List<PageModules>();oChildModules.Add(oChildPages);
}
}
if (oChildModules != null){
// Get child menu itemschildMenuItem = AddChildNode(oChildModules, ref parentMenuItem);oChildModules =
new List<PageModules>();}
TreeView1.Nodes.Add(parentMenuItem);
});
}
catch (Exception ex){
throw ex;}
}
private TreeNode AddChildNode(List<PageModules> oChildModules, ref TreeNode parentMenuItem){
TreeNode childMenuItem = null;
List<PageModules> oSubChildModules = null;
try{
// If child modules are foundif (oChildModules != null && oChildModules.Count > 0){
// Sort child modulesoChildModules.Sort(delegate(PageModules pm1, PageModules pm2){
return pm1.DisplayOrder.CompareTo(pm2.DisplayOrder);});
// Iterate each child moduleforeach (PageModules oChildModule in oChildModules){
// Create child menu itemchildMenuItem = new TreeNode();childMenuItem.Text = oChildModule.MenuName;
childMenuItem.Value = oChildModule.ID.ToString();
if (!string.IsNullOrEmpty(oChildModule.PageURL)){
childMenuItem.NavigateUrl = ResolveUrl(oChildModule.PageURL);
}
else{
childMenuItem.Selected = false;}
oSubChildModules = GetPageModule();
// Find child page modulesoSubChildModules = oSubChildModules.FindAll(delegate(PageModules oPageModule){
return ((oPageModule.ParentID == oChildModule.ID) ? true : false);});
if (oSubChildModules != null){
// Populate child sub menuAddChildNode(oSubChildModules, ref childMenuItem);}
parentMenuItem.ChildNodes.Add(childMenuItem);
}
}
}
catch (Exception ex){
throw ex;}
return childMenuItem;}
}