通过Visual studio 2005 中的web.sitemap实现OUTLOOK风格的系统菜单
Visual Studio 开发工具提供的一些功能让开发变得更加简单,比如 web.sitemap可以直接实现菜单导航,支持菜单模式和树的模式。 基本上菜单的变化,只需要配置一下 web.sitemap文件即可。
但这个功能并不一定能让最终端的用户满意,因为界面的操作风格比较单一,也只是方便的集成一些微软模式的权限控制。
如何实现一个OUTLOOK风格的菜单,并集成自有的权限体系呢。
如图
一级菜单展开、显示下级菜单、菜单权限控制、鼠标移动时高亮显示。。。。。
这样一个菜单如何通过web.sitemap实现的呢?
通过web.sitemap定义菜单结构及其它属性就可以实现这样的一个菜单风格
当然要达到这样的效果还是需要对web.sitemap的使用进行一些二次开发才能实现的。
1、扩展web.sitemap的一些属性
[web.sitemap代码]
比如:target="_parent"disenable="true"startIndex="1" AdminIndex。。。都是扩展的属性,用于一些控制逻辑的实现
2、根据输出一级菜单控制HTML及脚本
当然B/S系统实现OUTLOOK风格的菜单一定也是一些HTML、样式表、脚本来实现的。实现这一功能开发要做的事情是,根据sitemap的一级菜单设置输出相应的HTML。
[代码参考]
3、权限控制
在大部分国内的系统用户,是希望能在菜单上控制到权限的,权限的实现是跟某个具体的系统管理模块紧密相关的。Sitemap提供的权限控制跟微软提供的权限模块紧密梆定但不一定能满足国内系统的管理需求。
需要在sitemap上实现自己的权限控制代码。
[代码参考]
4、利用缓存技术进行优化
因为菜单页面的访问是非常频繁的,但用户和权限的变化频率比较小,对于大规模访问的系统来说,不要忘记利用缓存技术进行优化。 由于页面的输出跟用户有关,因此利用visual studio 2005的页面缓存功能就可以非常简单的实现了。
在菜单页面上加上标记:
<%@ OutputCache Duration="300000" VaryByParam="*"%> 即可,因为URL上已经将参数区别了。系统会自动根据参数不同缓存相应的版本。
5、配置sitemap实现功能
以上开发完成后,通过配置sitemap即可实现OUTLOOK风格的菜单了。还可以复制到其它系统中重复利用,实现重用的价值。
E8.Net开源架构提供了这一功能的全部代码。用户可以直接使用或参考,并在此基础上更加的完善。
E8.Net工作流架构大量节约用户的开发成本为企业应用开发提供起点,提升软件生产力,欢迎访问:http://www.feifanit.com.cn/
E8.Net工作流平台 提升企业战略执行力
http://www.feifanit.com.cn
E8在线,打造中小企业一站式管理软件租用平台
E8系列软件又添新成员 E8CRM 带流程的CRM软件 http://www.e8crm.com