0

嗨,你能建议任何解决方案吗?我有一个 SiteMapPath 控件,而不是像这样的默认功能

Home > Accounts > User Account

其中“用户帐户”是指 ~/UserAccount.aspx

我想覆盖最后一个节点以显示有关当前用户的信息,即:

Home > Accounts > John White

而“John White”指的是 ~/UserAccount.aspx?id=111 ?

4

1 回答 1

0

是的,你必须继承XmlSiteMapProvider并覆盖它的BuildSiteMap方法。在这里,您可以在运行时操作您想要的任何节点,然后这些节点将显示在您的SiteMapPath控件中。

public class MySiteMapProvider : XmlSiteMapProvider
{
   ...

   public override SiteMapNode BuildSiteMap()
   {
     var node = base.BuildSiteMap();
     var userAccountsNode = this.FindUserAccountsNode(node);

     userAccountsNode.ReadOnly = false;
     userAccountsNode.Title = ...;
     userAccountsNode.Url = ...;
     userAccountsNode.ReadOnly = true;

     return node;
   }
}
于 2011-01-03T22:03:26.107 回答