使用 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
当从具有 TITLE 标签的 ASPX 页面后面的代码运行它时,Andreas Grech 的答案非常有效。
但是,如果 TITLE 标记需要从 ASPX 页面运行的Web 用户控件中更新怎么办?以上将导致错误(因为网页标题对 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"
它会起作用