Come modificare il titolo della pagina in ASP.Net 1.1?
-
05-07-2019 - |
Domanda
Con ASP.Net 2.0 è possibile utilizzare la proprietà Title
per modificare il titolo della pagina:
Page.Title = "New Title";
Ma poiché in ASP.Net 1.1 non esiste una proprietà Title
nella classe Page
, come posso cambiare il titolo della pagina dal code-behind?
Soluzione
Con ASP.Net 1.1, per prima cosa devi impostare l'attributo runat
sul markup del titolo:
<title id="PageTitle" runat="server">WebForm1</title>
Quindi dal codice dietro:
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
Altri suggerimenti
La risposta di Andreas Grech funziona molto bene quando viene eseguita dal codice dietro la pagina ASPX che ha il tag TITLE.
Ma cosa succede se il tag TITLE deve essere aggiornato da un Controllo utente Web eseguito dalla pagina ASPX? Quanto sopra comporterebbe un errore (poiché PageTitle non è visibile al controllo utente Web).
Quindi, nel caso di un controllo utente Web, fai come richiesto dalla soluzione di Grech, ma apporta le seguenti modifiche:
1) Non dichiarare il controllo PageTitle prima di Page_Load. Invece:
2) Dichiaralo all'interno di Page_Load come segue:
Dim PageTitle as HtmlGenericControl = Page.FindControl (" PageTitle ")
E quindi impostare il valore.
Qui il punto principale è che se imposti il ??titolo nella tua pagina principale in
<head><title>Master Title</title></head>
Il codice per aggiungere il titolo nel lato codice non funzionerà. Anche tutto è corretto
Page.Title="Page Title"
Questo sopra non è efficace. Devi rimuovere il titolo dalla pagina principale. Dopodiché non è necessario aggiungere altro codice. Basta aggiungere questo codice di seguito in Page_Load
<*>E funzionerà