Question

Avec ASP.Net 2.0, vous pouvez utiliser la propriété Titre pour modifier le titre de la page:

Page.Title = "New Title";

Mais dans la mesure où ASP.Net 1.1 ne contient pas de propriété Title dans la classe Page , comment puis-je modifier le titre de la page à partir du code-behind?

Était-ce utile?

La solution

Avec ASP.Net 1.1, vous devez d’abord définir l’attribut runat sur le balisage du titre:

<title id="PageTitle" runat="server">WebForm1</title>

Ensuite, à partir du code situé derrière:

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

Autres conseils

La réponse d'Andreas Grech fonctionne très bien lorsque vous l'exécutez à partir du code situé derrière la page ASPX contenant la balise TITLE.

Mais que se passe-t-il si la balise TITLE doit être mise à jour à partir d'un contrôle utilisateur Web exécuté à partir de la page ASPX? Ce qui précède entraînerait une erreur (car PageTitle n'est pas visible par le contrôle utilisateur Web).

Ainsi, dans le cas d'un contrôle utilisateur Web, procédez comme indiqué par la solution Grech, mais procédez aux ajustements suivants:

1) Ne déclarez pas le contrôle PageTitle avant Page_Load. Au lieu de cela:

2) Déclarez-le dans Page_Load comme suit:

Dim PageTitle en tant que HtmlGenericControl = Page.FindControl (" PageTitle ")

Et ensuite définissez la valeur.

Ici, le point principal est que si vous définissez le titre dans votre page maître dans

<head><title>Master Title</title></head>

Votre code pour ajouter un titre côté code ne fonctionnera pas.Même tout est correct

Page.Title="Page Title"

Celui ci-dessus n'est pas efficace. Vous devez supprimer le titre de la page maître. Après cela, pas besoin de code supplémentaire. Il suffit d’ajouter ce code ci-dessous dans Page_Load

<*>

Et ça va marcher

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top