ساخت جدول.
CREATE TABLE [dbo].[TBLMenu](
[MenuID] [int] IDENTITY(1,1) NOT NULL,
[ParentID] [int] NULL,
[Text] [nvarchar](50) NULL,
[NavigateUrl] [nvarchar](200) NULL,
[Description] [nvarchar](200) NULL,
[ToolTip] [nvarchar](50) NULL,
CONSTRAINT [PK_TBLMenu] PRIMARY KEY CLUSTERED
(
[MenuID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[TBLMenu] ON
INSERT [dbo].[TBLMenu] ([MenuID], [ParentID], [Text], [NavigateUrl], [Description], [ToolTip]) VALUES (6, NULL, N'گزارش گیری', N'Default.aspx?cat=6', NULL, N'گزارش گیری')
INSERT [dbo].[TBLMenu] ([MenuID], [ParentID], [Text], [NavigateUrl], [Description], [ToolTip]) VALUES (7, NULL, N'زبان برنامه نویسی', N'Default.aspx?cat=7', NULL, N'زبان برنامه نویسی')
INSERT [dbo].[TBLMenu] ([MenuID], [ParentID], [Text], [NavigateUrl], [Description], [ToolTip]) VALUES (8, 6, N'استیمولیت', N'sub/Default.aspx?cat=8', NULL, N'استیمولیت')
INSERT [dbo].[TBLMenu] ([MenuID], [ParentID], [Text], [NavigateUrl], [Description], [ToolTip]) VALUES (9, 6, N'کریستال', N'sub/Default.aspx?cat=9', NULL, NULL)
INSERT [dbo].[TBLMenu] ([MenuID], [ParentID], [Text], [NavigateUrl], [Description], [ToolTip]) VALUES (11, 8, N'کریستال تحت PHP', N'sub/Default.aspx?cat=11', NULL, NULL)
INSERT [dbo].[TBLMenu] ([MenuID], [ParentID], [Text], [NavigateUrl], [Description], [ToolTip]) VALUES (12, 8, N'استیمولیت تحت .NET', N'sub/Default.aspx?cat=12', NULL, NULL)
INSERT [dbo].[TBLMenu] ([MenuID], [ParentID], [Text], [NavigateUrl], [Description], [ToolTip]) VALUES (13, 7, N'C++', N'sub/Default.aspx?cat=13', NULL, NULL)
INSERT [dbo].[TBLMenu] ([MenuID], [ParentID], [Text], [NavigateUrl], [Description], [ToolTip]) VALUES (14, 7, N'C#', N'sub/Default.aspx?cat=14', NULL, NULL)
SET IDENTITY_INSERT [dbo].[TBLMenu] OFF
/****** Object: ForeignKey [FK_TBLMenu_TBLMenu] Script Date: 01/10/2014 18:47:15 ******/
ALTER TABLE [dbo].[TBLMenu] WITH CHECK ADD CONSTRAINT [FK_TBLMenu_TBLMenu] FOREIGN KEY([ParentID])
REFERENCES [dbo].[TBLMenu] ([MenuID])
GO
ALTER TABLE [dbo].[TBLMenu] CHECK CONSTRAINT [FK_TBLMenu_TBLMenu]
GO
قسمت html
<asp:Menu ID="Menu1" DataSourceID="xmlDataSource" runat="server" BackColor="#FFFBD6"
DynamicHorizontalOffset="2" Font-Names="Verdana" ForeColor="#990000" StaticSubMenuIndent="10px"
StaticDisplayLevels="1">
<DataBindings>
<asp:MenuItemBinding DataMember="MenuItem" NavigateUrlField="NavigateUrl" TextField="Text"
ToolTipField="ToolTip" />
</DataBindings>
<StaticSelectedStyle BackColor="#FFCC66" />
<StaticMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
<DynamicMenuStyle BackColor="#FFFBD6" />
<DynamicSelectedStyle BackColor="#FFCC66" />
<DynamicMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
<DynamicHoverStyle BackColor="#990000" Font-Bold="False" ForeColor="White" />
<StaticHoverStyle BackColor="#990000" Font-Bold="False" ForeColor="White" />
</asp:Menu>
<asp:XmlDataSource ID="xmlDataSource" TransformFile="~/TransformXSLT.xsl" XPath="MenuItems/MenuItem"
runat="server" />
قسمت کد
using System;
using System.Xml;
using System.Data;
using System.Data.SqlClient;
public partial class MasterPage : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
DataSet ds = new DataSet();
using (SqlConnection conn = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=TableHome;Integrated Security=True"))
{
SqlDataAdapter da = new SqlDataAdapter("SELECT [MenuID],[ParentID],[Text],[NavigateUrl],[ToolTip],[Description]FROM [TBLMenu]", conn);
da.Fill(ds);
da.Dispose();
}
ds.DataSetName = "Menus";
ds.Tables[0].TableName = "Menu";
DataRelation relation = new DataRelation("ParentChild",
ds.Tables["Menu"].Columns["MenuID"],
ds.Tables["Menu"].Columns["ParentID"], true);
relation.Nested = true;
ds.Relations.Add(relation);
xmlDataSource.Data = ds.GetXml();
//if (Request.Params["Sel"] != null)
// Page.Controls.Add(new System.Web.UI.LiteralControl("You selected " + Request.Params["Sel"]));
}
}