어느 외국인 웹사이트에서 좋은 해결책을 보고 간단하게 정리했습니다.
ASP.NET 응용 프로그램에서는 페이지 제목을 동적으로 수정해야 하는 경우가 많습니다. 일반적인 예는 사용자가 클릭할 것으로 예상되는 페이지 탐색 컨트롤에서 관련 콘텐츠가 표시되는 것입니다. 예를 들어 웹사이트의 구조는 다음과 같습니다.
도서 카테고리가 있고, 중국 도서, 외국 도서 카테고리가 있는 경우 일반적으로 트리 모양이나 asp.net 2.0의 새로운 탐색 표시줄 컨트롤을 사용할 수 있습니다.
(사이트맵), 달성하기 위해, 예를 들어
책--->중국 책;
책--->외국서적 등, 이때 페이지의 <제목> 부분에 "도서-->중국책" 등도 표시할 수 있다면 더욱 직관적이고 명확할 것입니다.
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 = "Untitled Page"
Const DEFAULT_PAGE_TITLE As String = "내 웹사이트에 오신 것을 환영합니다!!"
보호된 하위 페이지_Load(ByVal 보낸 사람을 개체로, ByVal e를 System.EventArgs로)가 Me.Load를 처리합니다.
'필요하다면 페이지 제목을 설정하세요
If String.IsNullOrEmpty(Page.Title) OrElse Page.Title = DEFAULT_UNNAMED_PAGE_TITLE 그런 다음
SiteMap.CurrentNode가 아무것도 아닌 경우
페이지.제목 = DEFAULT_PAGE_TITLE
또 다른
Page.Title = GetPageTitleBasedOnSiteNavigation()
'원하는 경우 다음을 사용할 수도 있습니다.
'Page.Title = GetPageTitleBasedOnSiteNavigationUsingRecursion(SiteMap.CurrentNode)
종료 조건
종료 조건
End Sub
개인 함수 GetPageTitleBasedOnSiteNavigation() As String
SiteMap.CurrentNode가 아무것도 아닌 경우
새로운 ArgumentException 발생("currentNode는 아무것도 될 수 없습니다.")
종료
'사이트 맵에 정의된 페이지를 방문하는 경우 - 페이지 제목을 작성하세요.
'계층 구조에서 사이트 맵 노드의 위치를 기준으로
Dim 출력 As String = String.Empty
currentNode를 SiteMapNode = SiteMap.CurrentNode로 Dim
currentNode가 아무것도 아닌 동안
출력.길이 > 0인 경우
출력 = currentNode.Title & ":" & 출력
또 다른
출력 = currentNode.Title
종료
currentNode = currentNode.ParentNode
인 경우출력을 반환하는
동안 종료
End Function은
먼저 두 개의 상수를 미리 정의한 다음 점진적으로 사이트맵의 노드를 설정합니다. 처음에는 노드가 null이고 이후 호출됩니다.
GetPageTitleBasedOnSiteNavigation() 이 프로세스는 각 사이트맵 노드를 문자열로 연결하고 마지막으로 이를 page.title로 반환하여 구현할 수 있습니다. 물론 재귀적으로 구현할 수도 있습니다.
출처: http://jackyrong.cnblogs.com/archive/2006/05/15/400345.html