ASP.Net 1.1でページタイトルを変更する方法は?
-
05-07-2019 - |
質問
ASP.Net 2.0では、 Title
プロパティを使用してページタイトルを変更できます:
Page.Title = "New Title";
しかし、ASP.Net 1.1では、 Page
クラスに Title
プロパティがないため、コードビハインドからページのタイトルを変更するにはどうすればよいですか?
解決
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ページの背後にあるコードから実行すると非常にうまく機能します。
しかし、ASXページから実行された WebユーザーコントロールからTITLEタグを更新する必要がある場合はどうなりますか?上記はエラーになります(PageTitleがWebユーザーコントロールに表示されないため)。
したがって、Webユーザーコントロールの場合は、Grechのソリューションの指示に従って実行しますが、次の調整を行います。
1)Page_Loadの前にPageTitleコントロールを宣言しないでください。代わりに:
2)Page_Load内で次のように宣言します:
HtmlGenericControlとしてPageTitleを暗くする= Page.FindControl(&quot; PageTitle&quot;)
そして値を設定します。
ここでの主なポイントは、マスターページにタイトルを設定すると
<head><title>Master Title</title></head>
コード側でタイトルを追加するコードは機能しません。すべてが正しい場合でも
Page.Title="Page Title"
上記の1つは無効です。マスターページからタイトルを削除する必要があります。その後、コードを追加する必要はありません。次のコードをPage_Loadに追加してください
<*>そして動作します