Saturday, 9 February 2013

tree view control

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; 
 
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;
using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;using System.Data.SqlClient;using System.Configuration;public partial class one : System.Web.UI.Page{
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;}
}