以前一直使div來創建Vertical菜單,也曾有過3個版本。
http://www.cnblogs.com/insus/archive/2011/10/19/2217314.html
現今Insus.NET拋開DIV標簽生成的方法,使用a標簽,而且是能動態添加的Vertical的網站左邊菜單條。
為了能夠動態管理,莫非是把菜單的信息存儲於數據庫中,在網站的后管理頁面能夠添加,編輯,更新及刪除這些菜單的信息。
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO -- ============================================= -- Author: Insus.NET -- Create date: 2013-07-22 -- Description: site left menu . -- ============================================= CREATE TABLE [dbo].[SiteMenu]( [SiteMenu_nbr] [tinyint] IDENTITY(1,1) NOT NULL, [MenuName] [nvarchar](30) NOT NULL, [Link] [varchar](200) NULL, [Target] [varchar](10) NULL, PRIMARY KEY CLUSTERED ( [SiteMenu_nbr] 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 ANSI_PADDING OFF GO
有關添加,更新和刪除的存儲過程,在此略過,只提供一個SELECT的存儲過程:
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: Insus.NET -- Create date: 2013-07-22 -- Description: get all site left menu . -- ============================================= CREATE PROCEDURE [dbo].[usp_SiteMenu_GetAll] AS SELECT [SiteMenu_nbr],[MenuName],[Link],[Target] FROM [dbo].[SiteMenu] GO
在網站中,需要創建一個訪問數據庫的類別。
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; /// <summary> /// Summary description for SiteMenu /// </summary> namespace Insus.NET { public class SiteMenu { private byte _SiteMenu_nbr; private string _MenuName; private string _Link; private string _Target; public byte SiteMenu_nbr { get { return _SiteMenu_nbr; } set { _SiteMenu_nbr = value; } } public string MenuName { get { return _MenuName; } set { _MenuName = value; } } public string Link { get { return _Link; } set { _Link = value; } } public string Target { get { return _Target; } set { _Target = value; } } BusinessBase objBusinessBase = new BusinessBase(); public SiteMenu() { // // TODO: Add constructor logic here // } public DataTable GetAll() { return objBusinessBase.GetDataToDataSet("usp_SiteMenu_GetAll").Tables[0]; } } }
在菜單呈現之前,先寫好菜單的樣式:
菜單一般都是共用的,因此Insus.NET在演示時,把它放在MasterPage母版頁內。創建一個母版頁:
下面是在.master.cs內,動態加載與綁定菜單的數據從數據庫中。
演示:
