摘要:越来越多的网页中使用到了菜单,一般说来,菜单制作的方法比较多,编程的语言基本上是 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"
1
2---
3
43 :在页面上放置 Web Menu 对象。
<cswm:webmenu clearpixelimage="/images/clearpixel.gif" id="QuickMenu" popupicon="/images/popup.gif" runat="server" selectedpopupicon="/images/selectedpopup.gif"> </cswm:webmenu>
1---
2
34 :添加菜单组和菜单项。
<cswm:webmenu clearpixelimage="/images/clearpixel.gif" id="QuickMenu" popupicon="/images/popup.gif" runat="server" selectedpopupicon="/images/selectedpopup.gif">
<cswm:group caption="Home" runat="server">
<cswm:item caption="News" runat="server" url="News.aspx"></cswm:item>
</cswm:group>
</cswm:webmenu>
1---
2
35 :添加嵌套菜单组和菜单项。
<cswm:webmenu clearpixelimage="/images/clearpixel.gif" id="QuickMenu" popupicon="/images/popup.gif" runat="server" selectedpopupicon="/images/selectedpopup.gif">
<cswm:group caption="Home" runat="server">
<cswm:item caption="News" runat="server" url="News.aspx"></cswm:item>
<cswm:item caption="About" runat="server" url="About.aspx"></cswm:item>
<cswm:item caption="Products" runat="server">
<cswm:group runat="server">
<cswm:item caption="Super Widget" runat="server" url="SuperWidget.aspx"></cswm:item>
<cswm:item caption="Super Widget Pro" runat="server" url="SuperWidgetPro.aspx"></cswm:item>
</cswm:group>
</cswm:item>
</cswm:group>
</cswm:webmenu>
1---