Hi jobs.gopikshn,
Refer Below Sample.
HTML
<ul id="jsddm">
<asp:Repeater ID="rptMenu" runat="server" OnItemDataBound="rptMenu_OnItemBound">
<ItemTemplate>
<li><a href='<%#Eval("Url") %>'>
<%#Eval("Title") %></a></li>
<ul>
<asp:Repeater ID="rptChildMenu" runat="server">
<ItemTemplate>
<li><a href="<%#Eval("Url") %>">
<%#Eval("Title") %></a></li>
</ItemTemplate>
</asp:Repeater>
</ul>
</ItemTemplate>
</asp:Repeater>
</ul>
Namespaces
C#
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
VB.Net
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration
Code
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.BindMenu();
}
}
protected void rptMenu_OnItemBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rptSubMenu = e.Item.FindControl("rptChildMenu") as Repeater;
rptSubMenu.DataSource = GetData("SELECT ParentMenuId, Title, Url FROM Menus WHERE ParentMenuId =" + ((System.Data.DataRowView)(e.Item.DataItem)).Row[0]);
rptSubMenu.DataBind();
}
}
private void BindMenu()
{
this.rptMenu.DataSource = GetData("SELECT * FROM Menus WHERE ParentMenuId = 0");
this.rptMenu.DataBind();
}
private DataTable GetData(string query)
{
DataTable dt = new DataTable();
string constr = ConfigurationManager.ConnectionStrings["conString"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand(query))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
sda.SelectCommand = cmd;
sda.Fill(dt);
}
}
return dt;
}
}
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not Me.IsPostBack Then
Me.BindMenu()
End If
End Sub
Protected Sub rptMenu_OnItemBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs)
If e.Item.ItemType = ListItemType.Item OrElse e.Item.ItemType = ListItemType.AlternatingItem Then
Dim rptSubMenu As Repeater = TryCast(e.Item.FindControl("rptChildMenu"), Repeater)
rptSubMenu.DataSource = GetData("SELECT ParentMenuId, Title, Url FROM Menus WHERE ParentMenuId =" & (CType((e.Item.DataItem), System.Data.DataRowView)).Row(0))
rptSubMenu.DataBind()
End If
End Sub
Private Sub BindMenu()
Me.rptMenu.DataSource = GetData("SELECT * FROM Menus WHERE ParentMenuId = 0")
Me.rptMenu.DataBind()
End Sub
Private Function GetData(ByVal query As String) As DataTable
Dim dt As DataTable = New DataTable()
Dim constr As String = ConfigurationManager.ConnectionStrings("conString").ConnectionString
Using con As SqlConnection = New SqlConnection(constr)
Using cmd As SqlCommand = New SqlCommand(query)
Using sda As SqlDataAdapter = New SqlDataAdapter()
cmd.CommandType = CommandType.Text
cmd.Connection = con
sda.SelectCommand = cmd
sda.Fill(dt)
End Using
End Using
Return dt
End Using
End Function
Screenshot