摘要:越来越多的网页中使用到了菜单,一般说来,菜单制作的方法比较多,编程的语言基本上是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:Item
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" />