Я увидел хорошее решение на сайте иностранца, поэтому просто скомпилировал его:
В приложении ASP.NET часто необходимо динамически изменять заголовок страницы. Типичным примером является то, что в элементе управления навигацией по странице, по какой ссылке пользователь должен щелкнуть, соответствующее содержимое будет отображаться в поле. заголовок страницы. Например, веб-сайт имеет следующую структуру:
Если есть категории книг, а также китайские книги и категории иностранных книг, вы обычно можете использовать древовидную форму или новый элемент управления панели навигации asp.net 2.0.
(карта сайта), для достижения, например,
книги --->Китайские книги;
Книги ----> Иностранные книги и т. д., и если бы в это время можно было также отображать, например, «Книги -> Китайские книги» в части <title> страницы, это было бы более интуитивно понятно и очевидно.
В asp.net 2.0 для этого мы можем использовать серверный элемент управления в части <head>. Сначала нам нужно добавить теги.
<head runat="server">
Затем вы можете изменить содержимое заголовка в событии page_load в следующей форме, например:
Page.Header.Title = "Текущее время: " & DateTime.Now.ToString()
или можно просто записать как page.title.
Затем мы можем объединить его с элементом управления картой сайта следующим образом. Метод реализации следующий:
Const DEFAULT_UNNAMED_PAGE_TITLE As String = «Страница без названия».
Const DEFAULT_PAGE_TITLE As String = "Добро пожаловать на мой сайт!!"
Protected Sub Page_Load (отправитель ByVal как объект, ByVal e As System.EventArgs) обрабатывает Me.Load
'Установим заголовок страницы, если необходимо
Если String.IsNullOrEmpty(Page.Title) OrElse Page.Title = DEFAULT_UNNAMED_PAGE_TITLE Тогда
Если SiteMap.CurrentNode не имеет значения, тогда
Page.Title = DEFAULT_PAGE_TITLE
Еще
Page.Title = GetPageTitleBasedOnSiteNavigation()
'Можно также использовать следующее, если вы предпочитаете
'Page.Title = GetPageTitleBasedOnSiteNavigationUsingRecursion(SiteMap.CurrentNode)
Конец, если
Конец, если
Завершить
частную функцию GetPageTitleBasedOnSiteNavigation() как строку
Если SiteMap.CurrentNode не имеет значения, тогда
Выдать New ArgumentException("currentNode не может быть ничем")
Конец Если
«Мы посещаем страницу, определенную на карте сайта, создайте заголовок страницы».
'на основе места узла карты сайта в иерархии.
Тусклый вывод As String = String.Empty
Уменьшить текущий узел как SiteMapNode = SiteMap.CurrentNode
, пока currentNode IsNot Nothing
Если выход.Длина > 0 Тогда
вывод = currentNode.Title & "::" & вывод
Еще
вывод = текущийУзел.Название
Конец, если
currentNode = currentNode.ParentNode
Завершить вывод при
возврате
функция End
сначала определяет две константы, а затем постепенно устанавливает узел карты сайта. Вначале узел имеет значение null, а затем вызывает.
GetPageTitleBasedOnSiteNavigation() Этот процесс можно реализовать, соединив каждый узел карты сайта со строкой и, наконец, вернув ее в page.title. Конечно, его также можно реализовать рекурсивно.
Источник: http://jackyrong.cnblogs.com/archive/2006/05/15/400345.html.