Как я могу использовать несколько файлов карты сайта без нескольких корневых узлов
Вопрос
Я использую элемент управления меню ASP.NET.Я бы хотел, чтобы меню выглядело следующим образом: ссылки с 1 по 10 находятся в одном файле карты сайта, а ссылки с 11 по 20 — в другом.
root
--link 1
(...)
--link 10
--link 11
(...)
--link 20
Однако файл карты сайта ДОЛЖЕН иметь корень, который я не могу скрыть.
Есть предположения?
-Эдооде
Решение
Есть ли какая-либо причина, по которой вы не можете добавить фиктивный корневой узел, а затем подклассифицировать элемент управления меню ASP.NET, чтобы игнорировать ваш фиктивный «корневой» узел?
Вы должны иметь возможность указать своему SiteMapProvider использовать разные карты сайта для меню.
Другой вопрос, который у меня возникает: какова цель создания нескольких файлов карты сайта?Я уверен, что у вас есть веская причина для этого, но знание того, что происходит, облегчит понимание и нахождение лучшего решения.
При этом я бы придумал собственную систему меню.Вы можете использовать jQuery и плагин superfish на внешней стороне и использовать C# для чтения файлов карты вашего сайта на внутренней стороне, чтобы построить структуру меню.
Другие советы
Вы можете подавить корневой узел, выполнив следующие действия:
SiteMapDataSource ds = new SiteMapDataSource();
ds.SiteMapProvider = "providername";
ds.ShowStartingNode = false;
TreeView1.DataSource = ds;
TreeView1.DataBind();
Я использую этот метод, чтобы скрыть корневой узел для древовидных представлений.