深入研究ASP.NET 2.0导航控件

时间:2022-10-13 05:06:14

深入研究ASP.NET 2.0导航控件

摘要:在OA系统中,每一位不同的角色都有不同的功能权限,这就需要OA系统在用户登录时通过用户的身份加载不同的功能权限,形成动态的功能权限导航系统。ASP NET2.0提供一种Provider的模式,站点导航系统正是基于这种Provider模式的服务,这样用户就可以借助这个功能强大而又灵活的模式构建自己的站点导航系统。

关键词:;siteMapProvider:自定义站点导航:ProviderModel

1 前言

OA(Office,utomation)系统是广大企事业单位信息化建设过程必然要经过的里程碑。在 2.0中有三个高度封装的导航控件:SiteMapPath,Menu、TreeView,其中Menu和TreeView可以绑定到一个XML文件或者站点地图(SiteeMapDataSouroe)的数据源上实现导航。然而可以发现,这样的数据绑定实现的导航是静态的,为实现动态的功能菜单导航系统,就需要在OA系统中为每一个不同的角色绑定一个XML功能权限的导航文件,而且每次对其功能权限的管理都必须对XML文件进行读写,十分不灵活。

2 自定义站点导航地图

2.1 ASP NET 2.0 ProviderModel

在 2.0中。大量地采用了Provider Model(图一),所谓Provider Model就是在服务和数据源之间提供一个统一的接口,使用户可以使用多种数据源,并且可以动态地在各个数据源之间切换的一种模式。

Provider Model极大地增加了程序的灵活性以及可扩展性。使用户定制自己的站点导航地图成为可能。图二显示了站点导航的Provider Model。

在中,命名空间System,Configuration,Provider中有一个名为ProvideBase的类,它是所有ProviderS的父类;其美于导航系统的子类SiteMapProvider是所有siteMap-Providers的父类。在ASP,NET中唯一发行的站点导航默认SiteMapProvider是XmlSiteMap―Provider,它能从站点地图文件(即后缀名为sitemap的xml文件)产生站点导航树。XmL―SiteMapProvider继承于StaticSiteMapProvider类,StatieSiteMapProvider类实现了SiteMap-Provider类的部分方法,所以当用户自定义站点提供程序时,一般选择从Static-SiteMapProvider类派生。

2.2基于Provider模式实现站点提供SqISiteMapProvide

下面我们就可以根据以上的原理完成SqlSiteMapProvider类。它是基于访问数据库的站点导航提供程序,即站点导航的信息可以存储在数据库中。如SQL Sever2000,一旦导航信息发生变化,只要通过SQL语句对数据库中表进行编辑,十分方便灵活。由于SqlSiteMapProvider继承于StaticSiteMapProvider类,它至少实现以下三个方法:

(1)lnitialize()方法,该方法在调用基类的InitiaJize()方法后执行自己的一些初始化信息,如初始化连接字符串,设置默认的Provider等。

(2)BuildSiteMap()方法,该方法是整个SqlSlteMapProvide类的核心,它主要负责从数据库中读取站点导航信息,并且在内存中构建站点地图。在该方法中,主要是建立数据库连接,读取节点信息并且创建SiteMapNode节点。

(3)GetRootNodeCore():返回目前由当前提供程序管理的所有节点的根节点。

3 结束语

本文主要讨论了在ASPNET中如何创建自定义站点地图,在实际运用中如果站点导航信息保存在一个非XML文件中。如数据库中,或者需要一个动态的站点导航结构,该结构如果需要在运行时构造可采用本文所述的方法。限于篇幅本文只是简要地做了介绍,具体实现过程中,开发者可以参考MSDN技术资源库进行开发。

上一篇:教学督导应用教育技术促进教与学主体作用的思... 下一篇:基于H.323协议实现局域网嵌入式语音通讯