Posts tagged: asp.net menu control database

Sep 30 2009

Dynamically create asp.net menu control using C#

Step1: click below link to view Category table and Subcategory table in sqlserver

Link to Category table and Subcategory table click here


Step2: Drag Menu control from toolbox

<asp:Menu ID=”Menu1″ runat=”server” Orientation=”Horizontal”>

</asp:Menu>

Step3: Write below code in Default.aspx.cs (Page Load event)

using System.Data;

using System.Data.SqlClient;

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

string ConnectionString = “Data Source=192.168.1.23;Initial Catalog=Purchase;User id=sa;Password=abc”;

SqlConnection objConn = new SqlConnection(ConnectionString);

string query = “select CategoryID,CategoryName from tblCategory”;

SqlCommand objCmd = new SqlCommand(query, objConn);

DataSet objDs = new DataSet();

DataSet objDsChild = new DataSet();

SqlDataAdapter objDa = new SqlDataAdapter(objCmd);

objConn.Open();

objDa.Fill(objDs);

int count = objDs.Tables[0].Rows.Count – 1;

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

{

string catname = objDs.Tables[0].Rows[i]["CategoryName"].ToString();

int catID = int.Parse(objDs.Tables[0].Rows[i]["CategoryID"].ToString());

//Menu1.Items[i].Text = “dddd”;

MenuItem CatItem = new MenuItem();

CatItem.Text = catname;

CatItem.Value = catID.ToString();

CatItem.NavigateUrl = “http://msdn.microsoft.com/en-us/library/default.aspx”;

Menu1.Items.Add(CatItem);

//Remember below line this line of code will clear SubCategory previous data

//in loop

objDsChild.Clear();

//ChildItems i.e SubCategory items

string query2 = “select categoryID,SubCategoryID,SubCategory from tblSubCategory where CategoryID=” + catID;

SqlCommand objCmd2 = new SqlCommand(query2, objConn);

objCmd.Parameters.Add(”CategoryID”, SqlDbType.Int).Value = catID;

SqlDataAdapter objDaChild = new SqlDataAdapter(objCmd2);

objDaChild.Fill(objDsChild);

int ChildCount = objDsChild.Tables[0].Rows.Count – 1;

for (int j = 0; j <= ChildCount; j++)

{

//int catChildID = int.Parse(objDsChild.Tables[0].Rows[j]["CategoryID"].ToString());

//if (catID == catChildID)

//{

MenuItem SubcatItem = new MenuItem();

SubcatItem.Text = objDsChild.Tables[0].Rows[j]["SubCategory"].ToString();

SubcatItem.Value = objDsChild.Tables[0].Rows[j]["SubCategory"].ToString();

SubcatItem.NavigateUrl = “http://www.google.com”;

//Instead of passing NavigateUrl (http://www.google.com) add

//new column in Subcategory table

//column name Url

//subcatItem.NavigateUrl=objDsChild.Tables[0].Rows[j]["Url"].ToString();

CatItem.ChildItems.Add(SubcatItem);

//}

}

}

objConn.Close();

}

}

Step4: Adding Styles to Menu control

<asp:Menu ID=”Menu1″ runat=”server” Orientation=”Horizontal”>

<StaticMenuStyle BackColor=”#993300″ BorderColor=”Black” BorderStyle=”Solid” BorderWidth=”2px” />

StaticMenuItemStyle BackColor=”#FFFF99″ Font-Names=”Verdana” Font-Size=”9pt” HorizontalPadding=”2px” ItemSpacing=”4px” VerticalPadding=”2px” />

<DynamicHoverStyle BackColor=”#FF9933″

Font-Names=”Tw Cen MT Condensed Extra Bold” ForeColor=”White” />

<DynamicMenuItemStyle BackColor=”#E8EFFF” ForeColor=”#663300″ />

<StaticHoverStyle BackColor=”#FF9933″ Font-Names=”Verdana” Font-Size=”9pt” ForeColor=”White” />

</asp:Menu>

Happy coding…

Alibi3col theme by Themocracy