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