Да, это определенно возможно. То, как мы это делаем, - это добавление пользовательского атрибута «IsPhantom» к узлам, которые мы не хотим отображать в карте сайта (и в других местах):
<siteMapNode url="~/Welcome.aspx" title="Welcome" description="" isPhantom="true" />
Затем в элементе управления картой сайта используйте следующий код для удаления узлов, имеющих атрибут «IsPhantom»:
protected void Page_Load(object sender, EventArgs e)
{
TreeView1.TreeNodeDataBound += new TreeNodeEventHandler(TreeView1_TreeNodeDataBound);
SiteMapSource.Provider = this.CurrentProvider;
}
protected void TreeView1_TreeNodeDataBound(object sender, TreeNodeEventArgs e)
{
SiteMapNode thisMapNode = (SiteMapNode)e.Node.DataItem;
TreeNode parentTreeNode = e.Node.Parent;
if (thisMapNode["isPhantom"] != null && thisMapNode["isPhantom"].ToLower().Equals(bool.TrueString.ToLower()) && parentTreeNode != null)
parentTreeNode.ChildNodes.Remove(e.Node);
}