В 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>
Затем из кода позади:
С#
// 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";
}
}
}
ВБ
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
Ответ Андреаса Греха очень хорошо работает при запуске из кода страницы ASPX с тегом TITLE.
Но что, если необходимо обновить тег TITLE из веб-элемента управления, запущенного со страницы ASPX? Вышеприведенное приведет к ошибке (поскольку PageTitle не отображается для пользовательского веб-элемента управления).
Итак, в случае пользовательского веб-элемента управления сделайте так, как диктует решение Греча, но внесите следующие изменения:
1) Не объявляйте элемент управления PageTitle перед Page_Load. Вместо:
2) Объявите его внутри Page_Load следующим образом:
Dim PageTitle как HtmlGenericControl = Page.FindControl("PageTitle")
А затем установить значение.
Здесь главное заключается в том, что если вы установите заголовок на своей главной странице в
<head><title>Master Title</title></head>
Ваш код для добавления заголовка в сторону кода не сработает. Даже все правильно
Page.Title="Page Title"
Этот выше не эффективен. Вы должны удалить заголовок с главной страницы. После этого нет необходимости в дополнительном коде. Просто добавьте этот код ниже в Page_Load
Page.Title="Page Title"
И это сработает