2009-08-02 13 views

答えて

11

これを行うにはいくつかの方法があります。

ページにプレースホルダを置く:

<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder> 

を今すぐTreeViewコントロールを作成し、ページにすでにあるのSiteMapDataSourceを割り当てる:

//Code Behind 
    TreeView tv1 = new TreeView(); 
    tv1.DataSourceID = "SiteMapDataSource1"; 
    PlaceHolder1.Controls.Add(tv1); 

    //aspx 
    <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" /> 

それとも、プログラムでサイトマップを割り当てることができます。

// Create an instance of the XmlSiteMapProvider class. 
    XmlSiteMapProvider testXmlProvider = new XmlSiteMapProvider(); 
    NameValueCollection providerAttributes = new NameValueCollection(1); 
    providerAttributes.Add("siteMapFile", "Web2.sitemap"); 

    // Initialize the provider with a provider name and file name. 
    testXmlProvider.Initialize("testProvider", providerAttributes); 

    // Call the BuildSiteMap to load the site map information into memory. 
    testXmlProvider.BuildSiteMap(); 

    SiteMapDataSource smd = new SiteMapDataSource(); 
    smd.Provider = testXmlProvider; 

    TreeView tv2 = new TreeView(); 
    tv2.DataSource = smd; 
    tv2.DataBind(); //Important or all is blank 
    PlaceHolder1.Controls.Add(tv2); 

プログラムでサイトマップを設定することで、ビジネスルールについて

これは、Web.Configを経由してもを行うことができます。

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

、その後、あなたのaspxページにだけプロバイダを切り替える:

<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" SiteMapProvider="SiteMap2" /> 

希望、これはあなたがまだ持っている、残念ながら

+0

を支援しますサイトマップをファイルに保存します。 – tsilb

+0

デフォルトでは、サイトマップファイルが必要です。ただし、動的に生成されたサイトマップを返すことができる独自のSiteMapProviderを実装することもできます。http://msdn.microsoft.com/en-us/library/aa479033.aspx - http://msdn.microsoft.com/en-us/library /aa479320.aspx。あなたはGoogleの "カスタムsitemapprovider"はそれについての多くの記事があります。 –

関連する問題