gpt4 book ai didi

asp.net - 如何将 SiteMap 绑定(bind)到动态创建的 TreeView?

转载 作者:行者123 更新时间:2023-12-04 17:13:59 26 4
gpt4 key购买 nike

如何在运行时将 SiteMap 绑定(bind)到动态创建的 TreeView?

最佳答案

有几种方法可以做到这一点。

在页面上放置一个 PlaceHolder:

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

希望这可以帮助

关于asp.net - 如何将 SiteMap 绑定(bind)到动态创建的 TreeView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1218673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com