Скажем, у меня есть базовая страница как так:Есть ли веб-элемент управления для динамического создания оглавления?
<custom:TableOfContents />
<h1>Some Heading</h1>
<h2>Foo</h2>
<p>Lorem ipsum</p>
<h2>Bar</h2>
<p>Lorem ipsum</p>
<h2>Baz</h2>
<p>Lorem ipsum</p>
<h1>Another Heading</h2>
<h2>Qux</h2>
<p>Lorem ipsum</p>
<h2>Quux</h2>
<p>Lorem ipsum</p>
Предположим, существуют все теги заголовков, как на стороне сервера управления. Есть некоторые веб-контроль <custom:TableOfContents />
для WebForms ASP.NET, который будет динамически генерировать оглавления, который выглядит примерно следующим образом (при визуализации на экране):
1. Some Heading
1.1. Foo
1.2. Bar
1.3. Baz
2. Another Heading
2.1. Qux
2.2. Quux
В идеале, каждая запись в таблице содержания будет быть гиперссылкой на динамически созданный якорь в соответствующем месте на странице. Кроме того, было бы неплохо, если бы текст каждого тега заголовка мог быть префикс его номера раздела.
Если нет веб-контроля, есть ли более простой способ сделать это? Имейте в виду, что многие теги заголовков будут созданы элементами управления с привязкой к данным, поэтому ручное сохранение оглавления не является вариантом. Похоже, что модель webforms идеально подходит для создания такого элемента управления, поэтому я удивлен, что еще не нашел его.
Вы изучали использование карты сайта и затем визуализацию ее в форме вашего ТОС? http://www.15seconds.com/issue/041117.htm –
Спасибо за предложение. TreeView выглядит как стандартный способ ASP.NET для этого. Тем не менее, я не вижу дублирующего элемента управления с SiteMapDataSource, что означает, что для того, чтобы этот подход работал, требуется довольно много кодирования. –