none
Montar Um Menu Através de Um SiteMap RRS feed

  • Pergunta

  • olá pessoal,

    eu tenho um SiteMap para cada empresa que acessa meu sistema so que nao consigo dizer ao menu utilize o SiteMap X.sitemap e nao o Y.sitemap 

    agrdeço pela ajuda

    terça-feira, 18 de junho de 2013 16:41

Respostas

  • Voce pode definir vários SiteMap's para o seu SiteMapDataSource e apenas indicar qual ele deve usar. Veja o exemplo contido neste post

    SiteMap X (WebX.sitemap)

    <?xml version="1.0" encoding="utf-8" ?>
    <siteMap>
          <siteMapNode title="MyMenu 1" url="Default.aspx">          
          </siteMapNode>
    </siteMap>


    SiteMap Y (WebY.sitemap)

    <?xml version="1.0" encoding="utf-8" ?>
    <siteMap>
      <siteMapNode title="MyMenu 2" url="Default.aspx">
      </siteMapNode>
    </siteMap>

    Configurando seu Web.Config

    <system.web>
      <siteMap defaultProvider="1SiteMap" enabled="true">
       <providers>
         <add name="SiteMapX" type="System.Web.XmlSiteMapProvider" siteMapFile="WebX.sitemap"/>
         <add name="SiteMapY" type="System.Web.XmlSiteMapProvider" siteMapFile="WebY.sitemap"/>
       </providers>
      </siteMap>
    </system.web>

    Agora em seu Page_Load voce pode definir qual siteMap voce quer usar:

    protected void Page_Load(object sender, EventArgs e)
    {
       SiteMapDataSource1.SiteMapProvider = "SiteMapY";
    }

    Abraços,


    Washington Luíz | MCP, MCTS
    O Senhor é minha força e somente Nele confio.

    • Marcado como Resposta Andre Germiniani quarta-feira, 26 de junho de 2013 15:18
    quarta-feira, 19 de junho de 2013 13:53

Todas as Respostas

  • Voce pode definir dinamicamente qual SiteMapDataSource seu menu vai usar.

    Dê uma olhadinha:

    How to set, change Menu data source (DataSourceID) programmatically

    Abraços,


    Washington Luíz | MCP, MCTS
    O Senhor é minha força e somente Nele confio.

    terça-feira, 18 de junho de 2013 17:27
    1. <script runat="server">  
    2.     protected void Button1_Click(object sender, System.EventArgs e)  
    3.     {  
    4.         Menu1.DataSourceID = "SiteMapDataSource1";  
    5.     }  
    6.     protected void Button2_Click(object sender, System.EventArgs e)  
    7.     {  
    8.         Menu1.DataSourceID = "SiteMapDataSource2";  
    9.     }  
    10. </script>
    11. mas como o SiteMapDataSource1 sabe que eue tem que usar o y.sitemap e nao x.sitemap?
    terça-feira, 18 de junho de 2013 18:53
  • Voce pode definir vários SiteMap's para o seu SiteMapDataSource e apenas indicar qual ele deve usar. Veja o exemplo contido neste post

    SiteMap X (WebX.sitemap)

    <?xml version="1.0" encoding="utf-8" ?>
    <siteMap>
          <siteMapNode title="MyMenu 1" url="Default.aspx">          
          </siteMapNode>
    </siteMap>


    SiteMap Y (WebY.sitemap)

    <?xml version="1.0" encoding="utf-8" ?>
    <siteMap>
      <siteMapNode title="MyMenu 2" url="Default.aspx">
      </siteMapNode>
    </siteMap>

    Configurando seu Web.Config

    <system.web>
      <siteMap defaultProvider="1SiteMap" enabled="true">
       <providers>
         <add name="SiteMapX" type="System.Web.XmlSiteMapProvider" siteMapFile="WebX.sitemap"/>
         <add name="SiteMapY" type="System.Web.XmlSiteMapProvider" siteMapFile="WebY.sitemap"/>
       </providers>
      </siteMap>
    </system.web>

    Agora em seu Page_Load voce pode definir qual siteMap voce quer usar:

    protected void Page_Load(object sender, EventArgs e)
    {
       SiteMapDataSource1.SiteMapProvider = "SiteMapY";
    }

    Abraços,


    Washington Luíz | MCP, MCTS
    O Senhor é minha força e somente Nele confio.

    • Marcado como Resposta Andre Germiniani quarta-feira, 26 de junho de 2013 15:18
    quarta-feira, 19 de junho de 2013 13:53