Jak powiązać SiteMap z dynamicznie tworzonym TreeView w czasie wykonywania?Jak powiązać SiteMap z dynamicznie tworzonym TreeView?
5
A
Odpowiedz
11
Istnieje kilka sposobów, aby to zrobić.
Umieść symbol zastępczy na stronie:
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
Teraz utworzyć TreeView i przypisać SiteMapDataSource że jest już na stronie:
//Code Behind
TreeView tv1 = new TreeView();
tv1.DataSourceID = "SiteMapDataSource1";
PlaceHolder1.Controls.Add(tv1);
//aspx
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
Albo można przypisać SiteMap programowo:
// 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);
Ustawienie SiteMap programowo pozwala również na przełączanie plików na podstawie w sprawie reguł biznesowych.
Można to również zrobić za pomocą pliku 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>
a potem w swojej stronie aspx wystarczy przełączyć provider:
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" SiteMapProvider="SiteMap2" />
Nadzieja to pomaga
Powiązane problemy
- 1. Treeview Silverlight. Nie można powiązać właściwości "IsExpanded"
- 2. Jak dynamicznie powiązać i statycznie dodać MenuItems?
- 3. get_absolute_url - Django`s sitemap
- 4. Przetestuj Google News Sitemap?
- 5. Powiąż dowolny dokument XML z WPF TreeView
- 6. TreeView BringIntoView z MVVM
- 7. django sitemap http://example.com
- 8. sitemap dla domeny z serwisu wielojęzycznych
- 9. TreeView z kolumnami
- 10. Usuń SelectedItem z TreeView
- 11. Jak dynamicznie powiązać wartość pola wyboru Angular 2
- 12. Jak zainstalować Virtual Treeview?
- 13. Jak programowo przewijać TreeView?
- 14. Próba związania metody dynamicznej na dynamicznie tworzonym złożeniu powoduje, że RuntimeBinderException
- 15. jQuery Menu i ASP.NET Sitemap
- 16. jak powiązać fancybox z dynamicznym dodanym elementem?
- 17. TreeView Virtualization
- 18. Jak powiązać z s-up?
- 19. Jak powiązać zmienne z zamknięciem?
- 20. Jak powiązać kategorię z postpressem?
- 21. Jak powiązać przycisk z ListView.SelectedItem
- 22. Jak powiązać zdarzenie z sessionStorage?
- 23. Jak powiązać z RelativeSource Self?
- 24. Jak powiązać StaticResource z konwerterem?
- 25. jak wyświetlić TreeView w DropDown
- 26. Jak wyświetlić katalogi w TreeView?
- 27. Dlaczego otrzymuję Nie można dynamicznie powiązać dynamicznego nie-dynamicznego?
- 28. Jak powiązać z CurrentItem z ICollectionView
- 29. Z sqlalchemy, jak dynamicznie powiązać silnik bazy danych na żądanie na żądanie
- 30. System plików TreeView
Niestety, nadal masz aby zapisać mapę witryny do pliku. – tsilb
Tak, domyślnie musi być plik mapy witryny. Możesz jednak zaimplementować własny SiteMapProvider, który może zwrócić dynamicznie generowaną mapę witryny: http://msdn.microsoft.com/en-us/library/aa479033.aspx - http://msdn.microsoft.com/en-us/library /aa479320.aspx. Jeśli masz Google "custom sitemapprovider", jest na nim mnóstwo postów. –