外国人のウェブサイトで良い解決策を見つけたので、簡単にまとめてみました。
ASP.NET アプリケーションでは、ページのタイトルを動的に変更する必要があることがよくあります。典型的な例としては、ユーザーがクリックすると予想されるページ ナビゲーション コントロールでは、関連するコンテンツが表示されます。たとえば、Web サイトには次のような Web サイト構造があります。
本のカテゴリがあり、さらに中国語の本と洋書のカテゴリがある場合は、通常、ツリー形状または 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 = "Untitled Page"
Const DEFAULT_PAGE_TITLE As String = "私の Web サイトへようこそ!!"
Protected Sub Page_Load(ByVal sender As Object、ByVal e As System.EventArgs) が Me.Load を処理します
'必要に応じてページのタイトルを設定します
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 が何もない場合
Throw New ArgumentException("currentNode を Nothing にすることはできません")
End If
'サイトマップで定義されたページにアクセスしています - ページタイトルを作成します
'階層内のサイト マップ ノードの位置に基づいて
Dim 出力 As String = String.Empty
currentNode が何もない間、
SiteMapNode = SiteMap.CurrentNode として currentNode を暗くします
Output.Length > 0 の場合
出力 = currentNode.Title & " :: " & 出力
それ以外
出力 = currentNode.Title
End If
currentNode = currentNode.ParentNode
End While
Return 出力
End Function は
最初に 2 つの定数を事前定義し、次にサイトマップのノードを徐々に確立します。最初はノードが null であり、その後呼び出します。
GetPageTitleBasedOnSiteNavigation() この処理は、各サイトマップ ノードを文字列で接続し、最終的に page.title に返すことで実装できます。 もちろん、再帰的に実装することもできます。
出典: http://jackyrong.cnblogs.com/archive/2006/05/15/400345.html