2009-08-02 9 views

cevap

11

Bunu yapmanın birkaç yolu vardır.

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

Şimdi TreeView oluşturmak ve sayfada zaten bir SiteMapDataSource atamak:

sayfasında bir yer tutucudur koy sen SiteMap programlı atayabilirsiniz

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

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

Veya:

// 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); 

SiteMap'in programsal olarak ayarlanması, dosya tabanlı olarak değiştirmenize de olanak tanır. iş kurallarına. Hala var

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

Umut bu maalesef

+0

yardımcı olur: sadece sağlayıcı geçiş için aspx sayfa sonra

<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> 

ve:

Bu

da Web.config yoluyla yapılabilir Site haritasını bir dosyaya kaydetmek için – tsilb

+0

Varsayılan olarak, bir site haritası dosyası olması gerekir. Ancak, dinamik olarak oluşturulmuş bir site haritasına dönüşebilecek kendi SiteMapProvider'ınızı uygulayabilirsiniz: http://msdn.microsoft.com/en-us/library/aa479033.aspx - http://msdn.microsoft.com/en-us/library /aa479320.aspx. Google "özel sitemapprovider" iseniz, bu konuda çok sayıda yayın var. –

İlgili konular