2009-08-02 12 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" /> 

या आप Sitemap प्रोग्राम के रूप में प्रदान कर सकते हैं:

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

डिफ़ॉल्ट रूप से हाँ, साइटमैप फ़ाइल होने की आवश्यकता है। हालांकि आप अपने स्वयं के साइटमैपप्रोवाइडर को कार्यान्वित कर सकते हैं जो गतिशील रूप से जेनरेट किए गए साइटमैप को वापस कर सकता है: http://msdn.microsoft.com/en-us/library/aa479033.aspx - http://msdn.microsoft.com/en-us/library /aa479320.aspx। यदि आप Google "कस्टम साइटमैप्रोवाइडर" हैं तो इसके बारे में बहुत सारी पोस्ट हैं। –

संबंधित मुद्दे