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?

È stato utile?

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à

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top