2009-08-31 21 views
1

我正在開發一個面向公衆的發佈網站。我需要在MasterPage中提供靜態導航。我不希望它綁定到我的網站結構。這不會經常編輯。我想要使​​用標準的ASP.Net導航控件<asp:Menu/><asp:SiteMapDataSource/>,它假設您在根目錄中有一個* .sitemap文件。在傳統的ASP.NET,我想最終下面的.aspx渲染我的導航」有沒有什麼辦法在Sharepoint中使用* .sitemap文件進行導航?

<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server"/> 
    <asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1" /> 

我明白,你可以點你的* .sitemap文件到不同的位置。我想點它移動到列表中的另一個文件,以便用戶可以根據需要編輯* .sitemap文件。

爲了將此代碼轉換爲sharepoint,我在網站的根目錄下配置了* .sitemap文件並在/通過SPDesigner頁面(稍後將被移入一個功能),但我最終得到一個ASP菜單鏈接到網站集名稱(PU)作爲父母和web.sitemap作爲一個孩子。 :

alt text http://employees.claritycon.com/pwalke/blogs/nav.png

我也試過使用<SharePoint:AspMenu/>,但我得到了相同的行爲。

我吠叫錯了樹嗎? SharePoint中的所有內容數據庫重定向都阻止我使用* .sitemap文件進行導航嗎?

我也打開使用普通的舊XML文件進行導航。

由於提前, 彼得

回答

4

您在猜測內置ASP.NET XmlSiteMapProvider不會存儲在SharePoint內容數據庫.sitemap文件的工作是正確的。我建議繼承XmlSiteMapProvider,並覆蓋BuildSiteMap如何處理給定的siteMapFile路徑,以便從SharePoint獲取地圖數據。爲了讓你開始,內置提供商的來源可在這裏:ProviderToolkitSamples.msi

相關問題