?

深入研究ASP.NET?。玻皩Ш娇丶?/h1>
2009-05-29 04:32趙正德侯曉宇
網絡與信息 2009年5期
關鍵詞:數據源導航系統站點

趙正德 莊 浩 侯曉宇

摘要:在OA系統中,每一位不同的角色都有不同的功能權限,這就需要OA系統在用戶登錄時通過用戶的身份加載不同的功能權限,形成動態的功能權限導航系統。ASPNET2.0提供一種Provider的模式,站點導航系統正是基于這種Provider模式的服務,這樣用戶就可以借助這個功能強大而又靈活的模式構建自己的站點導航系統。

關鍵詞:ASP.NET;siteMapProvider:自定義站點導航:ProviderModel

1前言

OA(Office,utomation)系統是廣大企事業單位信息化建設過程必然要經過的里程碑。在ASP.NET 2.0中有三個高度封裝的導航控件:SiteMapPath,Menu、TreeView,其中Menu和TreeView可以綁定到一個XML文件或者站點地圖(SiteeMapDataSouroe)的數據源上實現導航。然而可以發現,這樣的數據綁定實現的導航是靜態的,為實現動態的功能菜單導航系統,就需要在OA系統中為每一個不同的角色綁定一個XML功能權限的導航文件,而且每次對其功能權限的管理都必須對XML文件進行讀寫,十分不靈活。

2自定義站點導航地圖

2.1 ASP NET 2.0 ProviderModel

在ASP.NET 2.0中。大量地采用了Provider Model(圖一),所謂Provider Model就是在服務和數據源之間提供一個統一的接口,使用戶可以使用多種數據源,并且可以動態地在各個數據源之間切換的一種模式。

Provider Model極大地增加了程序的靈活性以及可擴展性。使用戶定制自己的站點導航地圖成為可能。圖二顯示了站點導航的Provider Model。

在ASP.NET中,命名空間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技術資源庫進行開發。

猜你喜歡
數據源導航系統站點
探秘家園
以“夏季百日攻堅”推進遠教工作拓展提升
圖表中的交互 數據鉆取還能這么用
積極開展遠程教育示范站點評比活動
怕被人認出
基于Excel的照片查詢系統開發與應用
再談利用郵件合并功能批量生成準考證
數據有增加 圖表自適應
先進站點應與落后站點開展結對幫扶

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合