Есть ли способ использовать файл * .sitemap в Sharepoint для навигации? - PullRequest
1 голос
/ 01 сентября 2009

Я работаю над публичным издательским сайтом. Мне нужно обеспечить статическую навигацию в MasterPage. Я не хочу, чтобы это было связано со структурой моего сайта. Это не будет редактироваться очень часто. Я хотел бы использовать стандартные элементы управления ASP.Net Navigation <asp:Menu/> и <asp:SiteMapDataSource/>, которые предполагают, что у вас есть файл * .sitemap в корневом каталоге. В традиционном ASP.NET я должен был получить следующий файл .aspx для рендеринга моей навигации:

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

Я понимаю, что вы можете указать свой файл * .sitemap в другое место. Я хотел бы указать его на другой файл, находящийся в списке, чтобы пользователи могли редактировать файл * .sitemap при необходимости.

Для того, чтобы перевести этот код в sharepoint, я предоставил файл * .sitemap в корне сайта и в / Pages через SPDesigner (будет перенесен в функцию позже), но в итоге получаю ASP меню, содержащее ссылку на имя семейства сайтов (PU) в качестве родительского и web.sitemap в качестве дочернего. Смотрите изображение:

альтернативный текст http://employees.claritycon.com/pwalke/blogs/nav.png

Я также пытался использовать <SharePoint:AspMenu/>, но у меня такое же поведение.

Я лаю не на том дереве? Неужели все перенаправления в SharePoint с базой данных контента не позволяют мне использовать файл * .sitemap для навигации?

Я также открыт для использования простого старого XML-файла для навигации.

Заранее спасибо, Питер

1 Ответ

4 голосов
/ 01 сентября 2009

Вы правы, предполагая, что встроенный ASP.NET XmlSiteMapProvider не будет работать с файлами .sitemap, хранящимися в базе данных контента SharePoint. Я бы предложил создать подкласс XmlSiteMapProvider и переопределить, как BuildSiteMap обрабатывает заданный путь siteMapFile, чтобы вместо этого получать данные карты из SharePoint. Для начала, источник для встроенного провайдера доступен здесь: ProviderToolkitSamples.msi .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...