質問

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に追加してください

<*>

そして動作します

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top