Click here to Skip to main content
Licence CPOL
First Posted 28 Jun 2008
Views 38,460
Downloads 853
Bookmarked 54 times

Binding Menu Control With Database

By Ravi Selvaraj | 28 Jun 2008
Bind the menu control with list of Category and Sub Categories
 
Part of The SQL Zone sponsored by
See Also

1
1 vote, 25.0%
2

3
2 votes, 50.0%
4
1 vote, 25.0%
5
3.50/5 - 4 votes
μ 3.50, σa 2.20 [?]
Figure 1

BindMenu1.jpg

Figure 2

BindMenu2.jpg

Introduction

In this article, I will show how to bind the menu control with the database. Suppose you have a situation to display the different Category and its Sub-Categories. When we click the Category/Sub Category (See Figure 1) to view the detail information about Category/Sub Category (See Figure 2), then this bit of code will be useful. This code prevents a post back to the server while selecting Sub Category.

Using the Code

Database Detail

Table Name - Category

BindMenu3.jpg

Table Name - SubCategory

BindMenu4.jpg

There are two tables (Category, SubCategory) which are related to each other.
Here’s the method called BindMenu which binds the menu control during the page load.

  1. Create the connection string to establish connection with the database:
    Dim connectionString As String =
    WebConfigurationManager.ConnectionStrings_
    	("DatabaseConnectionString1").ConnectionString
    Dim con As New SqlConnection(connectionString)
  2. Create two DataAdapters for both the tables:
    Dim dadCategories As New SqlDataAdapter("SELECT CatId,CatName FROM Category
    order by CatName", con)
    Dim dadSubCat As New SqlDataAdapter("SELECT SubCatId,CatId,SubCatName FROM
    SubCategory order by SubCatName", con)
  3. Create a DataSet and fill the dataset with both the tables:
    Dim dsCat As New DataSet()
    Using con
    con.Open()
    dadCategories.Fill(dsCat, "Category")
    dadSubCat.Fill(dsCat, "SubCategory")
    End Using
  4. Relate both the tables and name the relation as Children:
    dsCat.Relations.Add("Children", dsCat.Tables("Category").Columns("CatId"),
    dsCat.Tables("SubCategory").Columns("CatId")) 
  5. Loop through each category of data and its related Sub category of data. At each loop, we create menu items and associate with the menu control.
    For Each categoryRow As DataRow In dsCat.Tables("Category").Rows
    Dim mNode As New MenuItem(CType(categoryRow("CatName"), String), "", "",
    "~/DetailView.aspx?CatID=" + CType(categoryRow("CatId"), String), "_parent")
    Menu1.Items.Add(mNode)
    
    Dim subCatRows() As DataRow = categoryRow.GetChildRows("Children")
    For Each row As DataRow In subCatRows
    Dim subCatName As String = CType(row("SubCatName"), String)
    Dim subCatItems As New MenuItem(subCatName, "", "",
    "~/DetailView.aspx?CatID=" + CType(row("CatId"), String) + "&SubCatID=" +
    CType(row("SubCatId"), String), "_parent")
    Menu1.Items(count).ChildItems.Add(subCatItems)
    Next
    count = count + 1
    Next

History

  • 28th June, 2009: Initial post

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Ravi Selvaraj

Web Developer
Syntax Solutions Inc.
India India

Member


Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
QuestionAdding SubMenu to SubMenu [modified] Pinmemberbhagyap1:32 11 Jan '12  
General5-level menu Pinmemberamit121212423:52 19 Dec '10  
QuestionHow find the CatID PinmemberAjeet kumar verma2:15 25 Feb '10  
QuestionBindMenu PinmemberMember 46794646:44 6 May '09  
Hi Everyone!
just want to find out if someone has tried the BindMenu. I did and it seem not to work with Internet Explorer 8. Can someone verifer for me?
 
Thanks and best regards!
AnswerRe: BindMenu PinmemberAjeet kumar verma2:19 25 Feb '10  
Generalme 2 Pinmemberanhduongxanh17:54 2 Apr '09  
Questiongoing deeper Pinmemberykorotia23:18 29 Nov '08  
GeneralLayout PinmemberVelvet Saunders6:27 22 Oct '08  
GeneralRe: Layout PinmemberRavi Selvaraj0:17 26 Oct '08  
QuestionC# Code. Pinmembernirajan7:25 8 Jul '08  
AnswerRe: C# Code. PinmemberRavi Selvaraj8:11 8 Jul '08  
GeneralRe: C# Code. Pinmembernirajan15:39 14 Jul '08  
GeneralRe: C# Code. PinmemberRavi Selvaraj17:37 14 Jul '08  
GeneralRe: C# Code. Pinmemberdeepikadurge22:14 7 Apr '09  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web01 | 2.5.120210.1 | Last Updated 28 Jun 2008
Article Copyright 2008 by Ravi Selvaraj
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid