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