Comment changer le titre de la page dans ASP.Net 1.1?
-
05-07-2019 - |
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?
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