IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[VB.NET] Comment modifier le head et le body d'une page aspx


Sujet :

ASP.NET

  1. #1
    Expert confirm�
    Avatar de Immobilis
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par d�faut [VB.NET] Comment modifier le head et le body d'une page aspx
    Salut,
    Je souhaite modifier le <HEAD> de ma page pour y mettre du javascript.
    Je suis all� voir la FAQ et ai tent� d'adapter le code.Comment modifier le head et le body d'une page aspx?
    Je re�ois l'erreur suivante:
    Cannot get inner content of myHeader because the contents are not literal
    De plus, on dirait qu'il a du mal � conserver l'attribut "runat=server".

    Qqn a-t-il une solution?

    Merci
    "Winter is coming" (ma nouvelle page d'accueil)

  2. #2
    Expert confirm�
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    D�tails du profil
    Informations personnelles :
    �ge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par d�faut
    Salut Immobilis
    si tu catch quelle est la ligne de code qui l�ve l'exception :

  3. #3
    Expert confirm�
    Avatar de Immobilis
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par d�faut
    Salut neguib,

    Celle ci:
    header.InnerHtml = header.InnerHtml + "<script language=""javascript"">function myfct{alert('Hello');}</script>"
    Merci
    "Winter is coming" (ma nouvelle page d'accueil)

  4. #4
    Expert confirm�
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    D�tails du profil
    Informations personnelles :
    �ge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par d�faut
    ok et pourquoi tu n'utilises pas plut�t le InnerHtml :
    Edit: ok tu as modifi� je viens de le voir bon je regardes de mon c�t� et je te dis quoi

  5. #5
    Expert confirm�
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    D�tails du profil
    Informations personnelles :
    �ge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par d�faut
    Alors j'ai fait ceci
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
       InitializeComponent()
       Me.head = CType(FindControl("head"), HtmlGenericControl)
       Me.head.InnerHtml += "<script language=""javascript"">function fctjavascript{alert('Hello');}</script>"
       Me.body = CType(FindControl("body"), HtmlGenericControl)
       Me.body.Attributes("onclick") = "fctjavascript()"
    End Sub
    Donc apr�s execution, j'ai verifier le code de la page et tout � bien �t� ajout�. Cela est donc regl� apparemment avec le transtypage si tu confirme, je verrais � revoir l'article de la Faq ok

  6. #6
    Expert confirm�
    Avatar de Immobilis
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par d�faut
    Dans mon web form, je d�clare:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <HEAD id="myHeader" runat=server>
    dans le code behind
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Protected myHeader As HtmlGenericControl
    Puis,
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
            'CODEGEN: This method call is required by the Web Form Designer
            'Do not modify it using the code editor.
            InitializeComponent()
            Try
                Me.myHeader = CType(FindControl("myHeader"), HtmlGenericControl)
                Me.myHeader.InnerHtml += "<script language=""javascript"">function fctjavascript{alert('Hello');}</script>"
     
            Catch ex As Exception
                Response.Write(ex.Message)
     
            End Try
     
        End Sub
    Mais, j'ai tjrs la mm erreur.
    Dans la mesure o� "myHeader est d�clar� comme "HtmlGenericControl" est-il utile de le convertir?

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  7. #7
    Expert confirm�
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    D�tails du profil
    Informations personnelles :
    �ge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par d�faut
    Citation Envoy� par Immobilis
    Dans la mesure o� "myHeader est d�clar� comme "HtmlGenericControl" est-il utile de le convertir?
    A+
    ce n'est pas header qui est transtyper mais bien le resultat de la fonction FindControl qui elle renvoit un Web.UI.Control
    Mais le code peut �tre dans le Page_Load chez moi �� fonctionne toujours
    Mon seul souci effectivement c'est de garder le runat=server dans le Head
    Apparemment j'y arrive en fermant le designer avant generation quelconque

  8. #8
    Expert confirm�
    Avatar de Immobilis
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par d�faut
    Il y a des post sur le net � propos, voici deux liens.

    http://www.c-sharpcorner.com/Code/20...SP.NETForm.asp

    http://www.dotnet247.com/247referenc...27/135691.aspx

    Ce dernier fait r�f�rence � l'attribut runat=3D"server". Cela te dit-il qqch?

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  9. #9
    Expert confirm�
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    D�tails du profil
    Informations personnelles :
    �ge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par d�faut
    Citation Envoy� par Immobilis
    Il y a des post sur le net � propos, voici deux liens.

    http://www.c-sharpcorner.com/Code/20...SP.NETForm.asp

    http://www.dotnet247.com/247referenc...27/135691.aspx

    Ce dernier fait r�f�rence � l'attribut runat=3D"server". Cela te dit-il qqch?

    A+
    : d�sol�, faudrait qu'une pointure vienne � notre rescousse

  10. #10
    Expert confirm�
    Avatar de Immobilis
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par d�faut
    C'est qui la cavalerie?

    En tous les cas, chez moi, �a change pas.
    Il detecte 6 autres objets dans le controle <HEAD>:
    1 <TITLE>
    4 <META>
    1 <LINK>
    Cela pourrait-il �tre le pb?

    Je viens de mp Neo51 qui est l'auteur de la FAQ.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  11. #11
    Expert confirm�
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    D�tails du profil
    Informations personnelles :
    �ge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par d�faut
    Je sais pas je te mets tout ce que j'ai fait et qui fonctionne � toi de voir
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="TestInnerHtml.WebForm1"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//FR">
    <html>
     <head id="head" runat="server">
      <title>WebForm1</title>
      <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
      <meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
      <meta name="vs_defaultClientScript" content="JavaScript">
      <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
     </head>
     <body id="body" runat="server" ms_positioning="GridLayout">
      <form id="Form1" method="post" runat="server">
      </form>
     </body>
    </html>
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    Public Class WebForm1
     Inherits System.Web.UI.Page
     <System.Diagnostics.DebuggerStepThrough()> _
     Private Sub InitializeComponent()
     End Sub
     Protected WithEvents body As HtmlGenericControl
     Protected WithEvents head As HtmlGenericControl
     Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
      InitializeComponent()
     End Sub
     Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      Try
        Me.head = CType(Me.FindControl("head"), HtmlGenericControl)
        Me.head.InnerHtml += "<script language=""javascript"">function fctjavascript{alert('Hello');}</script>"
        Me.body = CType(Me.FindControl("body"), HtmlGenericControl)
        Me.body.Attributes("onclick") = "fctjavascript()"
        Response.Write("çà marche!")
      Catch ex As Exception
        Response.Write(ex.Message)
      End Try
     End Sub
    End Class
    resultat
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//FR">
    <html>
     <head id="head">
      <title>WebForm1</title>
      <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
      <meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
      <meta name="vs_defaultClientScript" content="JavaScript">
      <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
      <script language="javascript">function fctjavascript{alert('Hello');}</script></head>
     <body id="body" ms_positioning="GridLayout" onclick="fctjavascript()">
       <form name="Form1" method="post" action="WebForm1.aspx" id="Form1">
    <input type="hidden" name="__VIEWSTATE" value="blablabla ...=" />
       </form>
     </body>
    </html>

  12. #12
    Membre averti Avatar de Gigottine
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    27
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2002
    Messages : 27
    Par d�faut
    Salut,
    Je ne sais pas si ca peut changer quelque chose mais moi pour retrouver le control j 'utilise :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    head = Page.FindControl("head")
    � la place :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    head= ctype(me.FindControl("head"), HtmlGenericControl)
    Et je suis comme vous le runat = "server" disparait comme par magie lors de la compilation de temps en temps

  13. #13
    Expert confirm�
    Avatar de Immobilis
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par d�faut
    J'ai copi� coll� ton code et �a marche pas... Sauf pour le body.

    Va falloir trouver autre chose. La disparition du runat est peut-�tre symptomatique.

    A+

    PS : J'utilise le Framework 2.0. Il existe apparement un controle System.Web.UI.HtmlControls.HtmlHead mais VS2003 ne le reconnait pas.
    "Winter is coming" (ma nouvelle page d'accueil)

  14. #14
    Expert confirm�
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Par d�faut
    Citation Envoy� par Immobilis
    PS : J'utilise le Framework 2.0. Il existe apparement un controle System.Web.UI.HtmlControls.HtmlHead mais VS2003 ne le reconnait pas.
    tu ne peux pas utiliser le framework .NET 2.0 sous Visual Studio 2003.

    La solution de la FAQ a �t� test� avec VS.NET 2003 et le framework .NET 1.1.

  15. #15
    Expert confirm�
    Avatar de Immobilis
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par d�faut
    Bon,

    Je suis pass� sous le Framework 1.1 et �a marche. Excellente compatibilit� descendante

    Citation Envoy� par neo.51
    tu ne peux pas utiliser le framework .NET 2.0 sous Visual Studio 2003.
    Insaller le Framework 2.0 ne sert � rien alors?
    Cela ne permet-il pas d'utiliser des composant du FW mis � jour?

    Ou alors il faut se procurer obligatoirement VS2005... BIIIILLL

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  16. #16
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Par d�faut
    Je sais que le post date un peu mais au cas ou d'autres aient le m�me probl�me,
    vu que j'ai eu la m�me erreur m�me en suivant les indications de la faq et de ce post, voila comment j'arrive � faire (.NET 2.0 avec VS2005):

    Code C# : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    protected HtmlHead head;
    ...
    head = (HtmlHead)Page.FindControl("head");
    HtmlLink link = new HtmlLink();
    link.Attributes.Add("rel", "stylesheet");
    link.Attributes.Add("type", "text/css");
    link.Attributes.Add("href", "../style/monStyle.css");
    head.Controls.Add(link);

    et �a marche nickel

    (c'est du C# par contre)

    �a serait cool de le rajouter dans la faq si �a aide

  17. #17
    CUCARACHA
    Invit�(e)
    Par d�faut Utilise une variable publique comme en asp3 �a fait des miracles :)
    Salut

    �a �a marche pas mal...

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <title><%=strTitre%></title>
    Il te suffit de d�clarer la chaine strTitle en public dans la classe de la page...

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    public strTitle as string
     
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    strTitle = "Mon titre"
        End Sub
    Ca marche en VB et en C# en version 1.1 et 2.0

    ++

    Laurent

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 5
    Dernier message: 05/10/2009, 13h05
  2. [VB.NET]Comment modifier un textbox a partir d'une dll?
    Par Subkill dans le forum G�n�ral Dotnet
    R�ponses: 5
    Dernier message: 21/01/2008, 21h38
  3. R�ponses: 2
    Dernier message: 26/09/2006, 08h56
  4. [VB.Net] Comment modifier le CurrentDirectory ?
    Par Lofwyr^ dans le forum VB.NET
    R�ponses: 2
    Dernier message: 24/05/2006, 18h52
  5. R�ponses: 9
    Dernier message: 05/01/2006, 14h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo