摘要:越來越多的網頁中使用到了菜單,一般說來,菜單制作的方法比較多,編程的語言基本上是Javascript或者vbscript這兩種,這種菜單一旦制作好就不能改變,修改起來比較麻煩。本文講解webmenu控件,同時給出實例,講菜單和數據庫結合起來,實現動態的菜單。
前言:
下拉菜單技術常常在大型網站(如微軟公司網站)中被用於網站導航,這樣可有效的縮短浏覽者定位至特定內容的時間。用Javascript或VBscript雖可實現該項效果,但需要學習腳本語言和DHtml。或者,還可以用Dreamweaver和CSS也能制作出(多級)下拉菜單。
對菜單的顯示過程進行一下分析,可以發現以下幾點:
1 當鼠標移動到文字(或圖像)上,菜單顯示;
2 鼠標從文字(或圖像)上移開(除菜單外的位置),菜單消失;
3 鼠標從文字(或圖像)移動到菜單上,菜單保持顯示(這是關鍵);鼠標從菜單移開,菜單消失。
4 對於多級菜單還要保持上下級菜單的同步。
5當鼠標移動到菜單項目上,菜單項的外觀(前景,背景或邊框)變化。
這些特點實現了菜單的部分功能,某一些菜單功能無法通過或者不方便通過腳本語言來操作,例如,怎麼來實現菜單的Disenable和Enable功能。還有怎麼來實現菜單的“過程操作”(也就是沒有點擊“打開文件”,就無法進行“編輯”功能),這些方法均無法通過腳本來實現,同時腳本語句嵌入Html語言中,結構復雜,寫作麻煩,技術要求較高,不能迅速掌握,現在也有一些寫作網頁菜單的工具,通過軟件操作,生成腳本,然後拷貝腳本到網頁裡,盡管這樣也可以實現網頁菜單,但是也無法實現上文所說的部分功能。
第一部分:Web Munu控件
在網上搜索到了一個很有用的控件,WebMenu for ASP.Net(http://www.coalesys.com),這個控件除了能夠實現生成腳本語言的功能之外,就是還可以支持數據庫操作,通過在數據庫裡設置一些屬性的值,可以實現菜單的相關功能。而且該控件生成的腳本可以面向國中內核的浏覽器,做到了真正的兼容,使用起來沒有後顧之憂。
使用之前要注冊。注冊後就可以把注冊碼嵌入ASP.Net的後台,以便分發部署的時候不會出錯。Web Menu的License key是一個字符串,格式為:"用戶名:公司名稱:序列號"具體使用如下:
WebMenu.UserData = "John Doe:Acme Corp:1234567890";
//如果沒有公司名稱,使用方法如下:
WebMenu.UserData = "John Doe::1234567890";
具體使用這個控件的方法如下:
1:拷貝DLL到解決方案的bin目錄。
2:在您的頁面上注冊。語句為:
<%@ Register TagPrefix="cswm" Namespace="Coalesys.WebMenu" Assembly="Coalesys.WebMenu" %>
3:在頁面上放置Web Menu對象。
<cswm:WebMenu
ID = "QuickMenu"
ClearPixelImage = "/images/clearpixel.gif"
PopupIcon = "/images/popup.gif"
SelectedPopupIcon = "/images/selectedpopup.gif"
runat = "server">
</cswm:WebMenu>
4:添加菜單組和菜單項。
<cswm:WebMenu
ID = "QuickMenu"
ClearPixelImage = "/images/clearpixel.gif"
PopupIcon = "/images/popup.gif"
SelectedPopupIcon = "/images/selectedpopup.gif"
runat = "server">
<cswm:Group
Caption = "Home"; runat="server">
<cswm:Item
Caption = "News"
URL = "News.ASPx"
runat = "server" />
</cswm:Group>
</cswm:WebMenu>
5:添加嵌套菜單組和菜單項。
<cswm:WebMenu
ID = "QuickMenu"
ClearPixelImage = "/images/clearpixel.gif"
PopupIcon = "/images/popup.gif"
SelectedPopupIcon = "/images/selectedpopup.gif"
runat = "server">
<cswm:Group
Caption = "Home"
runat="server">
<cswm:Item
Caption = "News"
URL = "News.ASPx"
runat = "server" />
<cswm:It
em
Caption = "About"
URL = "About.ASPx"
runat = "server" />
<cswm:Item
Caption = "Products"
runat = "server">
<cswm:Group runat="server">
<cswm:Item
Caption = "Super Widget"
URL = "SuperWidget.ASPx"
runat = "server" />
<cswm:Item
Caption = "Super Widget Pro"
URL = "SuperWidgetPro.ASPx"
runat = "server" />
</cswm:Group>
</cswm:Item>
</cswm:Group>
</cswm:WebMenu>