ASP.Net серверное навигационное меню на основе содержимого HTML - PullRequest
0 голосов
/ 09 июля 2010

Мне нужно сделать несколько стилей для множества веб-форм, содержащих статьи, отформатированные довольно равномерно.Я могу изменить любой исходный код, какой захочу.

Мне нужен быстрый способ динамически создавать навигационное меню (на стороне сервера) для веб-формы ASP.NET на основе содержимого.указанного div.

Например, с учетом следующего HTML:

<div id="article">

   <h2 id="first">Chapter 1</h2>
      <p>Some text...</p>

   <h2 id="second">Chapter 2</h2>
      <p>Some other text</p>

</div>

Я хотел бы вставить что-то вроде этого в конце (и отобразить это на стороне сервера,не в сценарии):

<div id="navigation">
  <ul>
       <li><a href="#first">Chapter 1</a></li>
       <li><a href="#second">Chapter 2</a></li>
  </ul>
</div>

ПРИМЕЧАНИЕ: Я знаю, что мог бы перебирать дочерние элементы управления родительского div в codebehind (хотя мне нужно было бы заставить их все "работать на сервере"или даже проанализировать свойство InnerHtml родительского div), но если это кажется довольно странным.

Кроме того, я знаю, что если бы статья создавалась из источника данных, я бы организовал содержимое уже, ноЯ хотел бы внести как можно меньше изменений в существующие страницы.

Ответы [ 2 ]

0 голосов
/ 09 июля 2010

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

Однако, если у вас есть только HTML, я бы использовал XSLT.

0 голосов
/ 09 июля 2010

Вы можете искать заголовки с помощью RegEx и отображать навигацию по результатам.Что-то вроде "<h2 id=\"([^\"]+)\">([^<]+)</h2>" даст вам идентификатор в первой и заголовок во второй группе.

...