ASP.Net 2.0では、Title
プロパティを使用してページタイトルを変更できます。
Page.Title = "New Title";
しかし、ASP.Net 1.1ではクラスにTitle
プロパティがないためPage
、コードビハインドからページのタイトルを変更するにはどうすればよいですか?
ASP.Net 2.0では、Title
プロパティを使用してページタイトルを変更できます。
Page.Title = "New Title";
しかし、ASP.Net 1.1ではクラスにTitle
プロパティがないためPage
、コードビハインドからページのタイトルを変更するにはどうすればよいですか?
ASP.Net 1.1では、最初runat
にタイトルマークアップに属性を設定する必要があります。
<title id="PageTitle" runat="server">WebForm1</title>
次に、背後のコードから:
C#
// We need this name space to use HtmlGenericControl
using System.Web.UI.HtmlControls;
namespace TestWebApp
{
public class WebForm1 : System.Web.UI.Page
{
// Variable declaration and instantiation
protected HtmlGenericControl PageTitle = new HtmlGenericControl();
private void Page_Load(object sender, System.EventArgs e)
{
// Set new page title
PageTitle.InnerText = "New Page Title";
}
}
}
VB
Imports System.Web.UI.HtmlControls
Namespace TestWebApp
Public Class WebForm1
Inherits System.Web.UI.Page
Protected PageTitle As HtmlGenericControl = New HtmlGenericControl()
Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
PageTitle.InnerText = "New Page Title"
End Sub
...
End Class
End Namespace
Andreas Grechによる回答は、TITLEタグを持つASPXページの背後にあるコードから実行すると非常にうまく機能します。
しかし、ASPXページから実行されたWebユーザーコントロールからTITLEタグを更新する必要がある場合はどうなりますか?上記の場合、エラーが発生します(PageTitleがWebユーザーコントロールに表示されないため)。
したがって、Webユーザーコントロールの場合は、Grechのソリューションで指示されているとおりに実行しますが、次の調整を行います。
1)Page_Loadの前にPageTitleコントロールを宣言しないでください。その代わり:
2)次のようにPage_Load内で宣言します。
PageTitleをHtmlGenericControl=Page.FindControl( "PageTitle")として薄暗くする
そして、値を設定します。
ここで重要なのは、マスターページでタイトルを設定した場合
<head><title>Master Title</title></head>
コード側にタイトルを追加するコードは機能しません。すべてが正しい場合でも
Page.Title="Page Title"
上記のこれは効果的ではありません。マスターページからタイトルを削除する必要があります。その後、追加のコードは必要ありません。このコードを以下のPage_Loadに追加するだけです。
Page.Title="Page Title"
そしてそれはうまくいくでしょう