Используйте два разных файла сайта в веб-приложении - PullRequest
1 голос
/ 06 ноября 2011

У меня есть поле в базе данных, которое может быть истинным или ложным. Я хочу показать web1.sitemap, если это поле истинно, и показать web2.sitemap, если оно ложно. Как мне это сделать.

Ответы [ 2 ]

1 голос
/ 06 ноября 2011

Вы можете добавить две карты данных сайта, а затем назначить эти источники данных для вашего элемента управления в коде, как вы делаете это с элементами управления данными.Я реализовал таким образом и работает нормально для меня.

например.menu1.datasource = sitemapdatasouce1;

вы можете создавать свои собственные провайдеры карт сайта и т. д. в коде ... это не так уж сложно .. посмотрите на msdn .. http://msdn.microsoft.com/en-us/library/ms178432.aspx

http://msdn.microsoft.com/en-us/library/ms178433.aspx

Я хотел бы создать свой класс провайдера sitmap, создать объект провайдера карты сайта и назначить его объекту класса sitemapdatasource .. затем вы можете использовать этот объект источника данных sitemap как типизированный sitemapDatasource .. надеюсь, это вам немного поможет.*

1 голос
/ 06 ноября 2011

Вы можете настроить несколько файлов Sitemap в вашем файле web.config.И в зависимости от значения поля вашей базы данных измените SiteMapProvider вашего Menu / Treeview на соответствующий: например, web1 или web2.

<configuration>
  <!-- other configuration sections -->
  <system.web>
    <!-- other configuration sections -->
    <siteMap defaultProvider="XmlSiteMapProvider">
     <providers>
       <add 
         name="web1"
         type="System.Web.XmlSiteMapProvider" 
         siteMapFile="~/web1.sitemap" />
       <add 
         name="web2"
         type="System.Web.XmlSiteMapProvider" 
         siteMapFile="~/web2.sitemap" />
     </providers>
    </siteMap>
  </system.web>
</configuration>
...