Как я могу использовать несколько файлов Sitemap без нескольких корневых узлов - PullRequest
1 голос
/ 19 сентября 2008

Я использую элемент управления меню ASP.NET. Я бы хотел, чтобы меню выглядело так: ссылки с 1 по 10 находятся в одном файле карты сайта, а ссылки с 11 по 20 - в другом.

root
--link 1
(...)
--link 10
--link 11
(...)
--link 20

Однако файл карты сайта ДОЛЖЕН иметь корень, который я не могу подавить.

Есть мысли?

-Edoode

Ответы [ 2 ]

2 голосов
/ 11 мая 2009

Вы можете подавить корневой узел, выполнив следующие действия:

SiteMapDataSource ds = new SiteMapDataSource();
ds.SiteMapProvider = "providername";
ds.ShowStartingNode = false;
TreeView1.DataSource = ds;
TreeView1.DataBind();

Я использую этот метод, чтобы скрыть корневой узел для представлений дерева.

1 голос
/ 19 сентября 2008

Есть ли причина, по которой вы не можете добавить фиктивный корневой узел, а затем создать подкласс элемента управления ASP.NET для игнорирования вашего фиктивного "корневого" узла?

Вы должны указать вашему SiteMapProvider использовать разные карты сайта для меню.

Другой вопрос, который у меня возникает, - какова цель иметь несколько файлов Sitemap? Я уверен, что у вас есть веская причина для этого, но знание того, что происходит, облегчит понимание и поможет найти лучшее решение.

При этом я бы придумал доморощенную систему меню. Вы можете использовать jQuery и плагин superfish на внешнем интерфейсе и использовать C # для чтения файлов карты вашего сайта на заднем конце для построения структуры меню.

...