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 :

Ecrire du javascript dans un webUserControl


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Par défaut Ecrire du javascript dans un webUserControl
    Bonjour,

    Apres avoir cherché sur google, je me tourne vers mon forum préféré...


    Comment faire pour ecrire du javascript dans ma page au moment de l'init de celle-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
     
        End Sub
    merci d'avance pour vos pistes.

  2. #2
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Bonjour,

    Un petit coup de RegisterStartUpScript devrait suffire.

    En espérant t'avoir aidé.

  3. #3
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    J'aurais plutôt conseillé registerclientscriptinclude, ou registerclientscriptblock, car il ne veut peut-être pas forcément executer le script mais juste l'avoir à disposition.

    Aussi, ClientScriptManager est déprécié, il faut passer par le namespace ScriptManager :

    ScriptManager.RegisterClientScriptInclude()

    http://msdn.microsoft.com/fr-fr/library/bb337005.aspx

  4. #4
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Citation Envoyé par ThomasR Voir le message
    Bonjour,

    J'aurais plutôt conseillé registerclientscriptinclude, ou registerclientscriptblock, car il ne veut peut-être pas forcément executer le script mais juste l'avoir à disposition.

    Aussi, ClientScriptManager est déprécié, il faut passer par le namespace ScriptManager :

    ScriptManager.RegisterClientScriptInclude()

    http://msdn.microsoft.com/fr-fr/library/bb337005.aspx
    Mouis c'est selon s'il souhaite référencer un script, ou le lancer à chaque load de la page, mais c'est le même principe.

    Quant au ClientScriptManager, en effet j'ai été trop vite à copier-coller le premier lien MSDN renvoyé par Google

  5. #5
    Membre éclairé Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Par défaut
    Merci à Nicolas Esprit et ThomasR pour ces 2 pistes.

    Apres quelques essais...
    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
     
    Private Function scriptString() As String
      Dim tScript as String
      tScript =""
      tScript = tScript & "<script type=""text/javascript"">"
      tScript = tScript & "function MyFonction(){"
      tScript = tScript & "var SourceChamp =  document.getElementById(""" & Me.TxtSourceChamp.UniqueID & """);" & vbLf
      tScript = tScript & "var DestChamp =  document.getElementById(""" & Me.TxtDestChamp.UniqueID & """);" & vbLf
      tScript = tScript & "DestChamp.value = SourceChamp.value;}" 
      tScript = tScript & "</script>"
      Return tScript 
    End Function
    Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
     Dim csm As ClientScriptManager
     csm = Page.ClientScript
     csm.RegisterClientScriptBlock(Me.GetType, "clientScript", scriptString())
    End Sub
    ça fonctionne super. Par contre, si j'ai ce genre de fonction javascript dans un webUserControl. Si je n'ai besoin que d'une fois ce UserControl ça fonctionne. Mais si j'ai mets 2 ou plus ça ne foncionne plus.
    Lorsque je regarde le source de la page HTML, le javascript n'est ajouté qu'une seul fois !?

    Existe-il un moyen de contourner le probleme, ou faut-il que dans mes fonctions javascript je prenne en compte la possibilité d'etre plusieurs fois utilisées et pas par les meme controle.

    Merci encore.
    PS: j'espere avoir ete clair.

  6. #6
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Citation Envoyé par Elwe31 Voir le message
    Si je n'ai besoin que d'une fois ce UserControl ça fonctionne. Mais si j'ai mets 2 ou plus ça ne foncionne plus.
    Bonsoir,

    C'est tout à fait normal, tu ne peux avoir deux fonctions avec le même nom. Ainsi, lors de la génération de ta page html par le serveur web, il ne reste qu'une seule fonction.

    Ce que tu dois faire c'est nommer ta fonction de façon unique. Par exemple pour le UserControl 1 tu as la fonction f1 et pour le UserControl 2 tu as la fonction f2 (chacun aura les UniqueID des TextBox qui le concerne).

    En gros ça revient à faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tScript = tScript & "function MyFonction" + ClientID + "(){"
    Egalement, lorsque tu ajoutes un bloc de Script tu devrais d'abord tester s'il n'existe pas déjà (recherche sur msdn pour plus de détails). De même, il te faudrait un nom unique. Donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    csm.RegisterClientScriptBlock(Me.GetType, "clientScript" + ClientID, scriptString())
    En espérant t'avoir aidé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ecrire du javascript dans un fichier html
    Par Amrouch14 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 27/04/2008, 18h59
  2. Ecrire depuis le javascript dans un fieldset
    Par flow-bolox dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/07/2007, 19h05
  3. [MFC]Ecrire du texte dans un rectangle
    Par zaz16 dans le forum MFC
    Réponses: 8
    Dernier message: 29/07/2003, 10h31
  4. [web] insertion javascript dans du perl
    Par laluna dans le forum Web
    Réponses: 3
    Dernier message: 28/07/2003, 09h50
  5. comment ecrire du texte dans une window application
    Par gaut dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 16/07/2003, 10h23

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