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 :

Content page et code JavaScript


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations forums :
    Inscription : Mars 2006
    Messages : 148
    Par défaut Content page et code JavaScript
    Bonjour à tous,

    Voici le problème auquel je fais face depuis quelques jours et pour lequel je sollicite votre aide.

    Je développe en APS.NET 2.0. J’utilise un MasterPage. Dans une des pages associée à mon master page (je ne sais pas si je peux l’appeler content page) j’ai un bouton de commande, qui doit afficher une nouvelle fenêtre. Dans l’évènement on_click du bouton de commande j’ai ajouté le code suivant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), 
    "page dans nouvelle fenetre", 
    "window.open('convertisseur.aspx', 'nomfenetre','toolbar=no,status=no,directories=no,menubar=no,location=no,scrollbars=no,resizable=yes,width=400,height=300')", 
    True)


    Pendant l’exécution de la page, quand je clique sur le bouton rien ne se produit (c'est-à-dire la nouvelle fenêtre ne s’affiche pas).

    Cependant j’ai crée une page sans l’associer à un MasterPage, la page est dans le même répertoire que le content page précédent. Sur cette page j’ai ajouté un bouton.

    J’ai ajouté le même code dans l’événement on_click du bouton placé sur la page non associée au master page. Pendant l’exécution, quand je clique sur le bouton ma nouvelle fenêtre s’affiche tel que souhaité.

    Apres les tests suivants je pense que le problème pourrait être l’utilisation du code JavaScript depuis ma page associée au master page.

    Comment pourrais je résoudre ce problème c'est-à-dire afficher une nouvelle fenêtre après un clic sur un bouton (le bouton est sur une page associée au master page) ?

    Toute aide sera la bienvenue.

    Merci

  2. #2
    Membre très actif Avatar de Sacha999
    Inscrit en
    Mars 2007
    Messages
    294
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mars 2007
    Messages : 294
    Par défaut
    Tu dois pas plutot mettre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript">window.open('convertisseur.aspx', 'nomfenetre','toolbar=no,status=no,directories=no,menubar=no,location=no,scrollbars=no,resizable=yes,width=400,height=300');</script>

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Il n'y a aucun lien entre ton bouton et ton script... essaie plutôt comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), 
        "page dans nouvelle fenetre", 
        "function OpenNewWindow() { window.open('convertisseur.aspx', 'nomfenetre','toolbar=no,status=no,directories=no,menubar=no,location=no,scrollbars=no,resizable=yes,width=400,height=300'); }", 
    True)
    Et dans ton code ASPX :

    Code ASP.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" value="blabla" onClick="OpenNewWindow(); return false;" />

    Sinon tu peux aussi mettre la fonction JS dans un bloc <script> directement dans la page, ce serait sans doute le plus simple...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations forums :
    Inscription : Mars 2006
    Messages : 148
    Par défaut
    Bonjour et merci pour ta réponse ; après avoir suivit tes conseils je n’ai toujours pas la solution à mon problème. En effet j’ai fait ce que tu as demandé quand je clique sur le bouton rien ne produit (le masterpage se recharge tout simplement sans afficher la fenêtre style popup). Pour être plus précis j’ai ajouté les deux lignes de code dans l’évènement on_load() du masterpage. Est-ce bien ce qu’il fallait faire ?

    Cependant en continuant les recherches pour résoudre ce problème, j’ai fait ce test ; J’ai ajouter un bouton de commande, et dans l’évènement onclick() de ce bouton j’ai mis le code ci après, le problème est que la nouvelle fenêtre s’affiche mais la police de page appelante est totale changer et apparaît beaucoup plus grand.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Response.Write("<script type='text/javascript'>window.open('../../formulaires/applilng/convertisseur.aspx', 'nomfenetre','toolbar=no,status=no,directories=no,menubar=no,location=no,scrollbars=yes,resizable=yes,width=420,height=320'); </script>")

    Comment réussir à afficher le popup a partir du master page?


    Citation Envoyé par tomlev Voir le message
    Il n'y a aucun lien entre ton bouton et ton script... essaie plutôt comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), 
        "page dans nouvelle fenetre", 
        "function OpenNewWindow() { window.open('convertisseur.aspx', 'nomfenetre','toolbar=no,status=no,directories=no,menubar=no,location=no,scrollbars=no,resizable=yes,width=400,height=300'); }", 
    True)
    Et dans ton code ASPX :

    Code ASP.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" value="blabla" onClick="OpenNewWindow(); return false;" />

    Sinon tu peux aussi mettre la fonction JS dans un bloc <script> directement dans la page, ce serait sans doute le plus simple...

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Ben je suppose que la page que tu ouvres dans la popup n'utilise tout simplement pas la même police... tu as peut-être oublié d'inclure une feuille de style CSS ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations forums :
    Inscription : Mars 2006
    Messages : 148
    Par défaut
    Le problème de police de caractère est le suivant. Sur le master page quand je fais le response.write, le popup s’affiche et la page appelante qui est lié à un master page se charge avec la taille de police 2 voir 3 fois plus grande. Mon master page utilise bel et bien les CSS mais je les ai mis directement sur le master page.

    Mon problème est le suivant, pourquoi en utilisant le code Page.ClientScript.RegisterStartupScript (qui, m’a-t-on dit est adapté pour ajouter du java script sur une page asp.net) avec le winodw.open depuis le master page ou le content page rien ne se produit. Tandis en utilisant directement response.write() le popup s’affiche mais la police devient plus grande.

    Je suis encore plus confus parce que si j’utilise ce code sur une page qui n’est pas lié à un masterpage, le popup s’affiche sans problème.


    Citation Envoyé par tomlev Voir le message
    Ben je suppose que la page que tu ouvres dans la popup n'utilise tout simplement pas la même police... tu as peut-être oublié d'inclure une feuille de style CSS ?

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    euh... là tu m'as perdu
    j'ai aucune idée de ce qui pose problème

  8. #8
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Citation Envoyé par Fngonka Voir le message
    Mon problème est le suivant, pourquoi en utilisant le code Page.ClientScript.RegisterStartupScript (qui, m’a-t-on dit est adapté pour ajouter du java script sur une page asp.net) avec le winodw.open depuis le master page ou le content page rien ne se produit. Tandis en utilisant directement response.write() le popup s’affiche mais la police devient plus grande.
    Normal, si tu fais un response.write, tu vas ecrire du code tout en haut de la page, avant le tag body, et ca va casser ta css

    Je vais te poser un question toute bête, mais qu'est-ce qui justifie de mettre ton code javascript dans le code-behind ?

    Est-ce que ce code javascript va changer ? ou est-ce que c'est pour ouvrir ta popup après une validation coté serveur ?

    Si c'est le second cas, le mieux, ce serait de faire, coté feuille .aspx :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <script type="text/javascript">
    function openConvertisseur(){
       window.open('convertisseur.aspx', 'nomfenetre','toolbar=no,status=no,directories=no,menubar=no,location=no,scrollbars=no,resizable=yes,width=400,height=300');
    }
    </script>
    coté serveur, après tes traitements :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), 
    "page dans nouvelle fenetre", 
    "<script language='javascript'>openConvertisseur();</script>", 
    True)

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations forums :
    Inscription : Mars 2006
    Messages : 148
    Par défaut
    Citation Envoyé par Philippe Vialatte Voir le message
    Si c'est le second cas, le mieux, ce serait de faire, coté feuille .aspx :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <script type="text/javascript">
    function openConvertisseur(){
       window.open('convertisseur.aspx', 'nomfenetre','toolbar=no,status=no,directories=no,menubar=no,location=no,scrollbars=no,resizable=yes,width=400,height=300');
    }
    </script>
    coté serveur, après tes traitements :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), 
    "page dans nouvelle fenetre", 
    "<script language='javascript'>openConvertisseur();</script>", 
    True)

    J’ai effectivement fais ce cas la, et le traitement je l’ai ajouté dans le l’évènement onclik du bouton de commande. Cependant dans ce cas précis quand je clique sur le bouton rien ne se produit c'est-à-dire le popup ne s’affiche pas. Quelle vérification puis encore faire ???

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations forums :
    Inscription : Mars 2006
    Messages : 148
    Par défaut
    Pour aider à une meilleure compréhension de mon problème et éviter de poster l’ensemble du code de mon master page, je me demandaient si le code java script qu’utilise mon menu déroulent (Je ne comprends pas vraiment toutes les instructions parce que j’ai copier le code sur le net) ne serait pas à l’origine de la mauvaise interprétation de la méthode window.open. Donc est ce que ce bout de code pourrait gêner l’exécution de ma fonction openConvertisseur().

    Voici le code qu’utilise mon menu déroulant.

    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
    24
    25
    26
    27
    28
    29
    function SymError()
    {
      return true;
    }
    
    window.onerror = SymError;
    
    var SymRealWinOpen = window.open;
    
    function SymWinOpen(url, name, attributes)
    {
      return (new Object());
    }
    
    window.open = SymWinOpen;
    
    window.onload=montre;
    function montre(id) {
    var d = document.getElementById(id);
    for (var i = 1; i<=10; i++) {
    if (document.getElementById('smenu'+i))
    {document.getElementById('smenu'+i).style.display='none';}
    }
    if (d) {d.style.display='block';}
    }
    function A1_onclick() {
    
    }
    Merci.
    P.S:Je prie d’ores et déjà les modos d’être indulgent envers moi je sais que je ne suis pas au bon endroit pour poster un bout de code java script mais c’est tout simplement dans le but de permettre au développeur asp.net qui maîtrisent java script de mieux comprendre le problème auquel je fais face.

  11. #11
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Est-ce que par le plus grand des hasards tu n'aurais pas une erreur js dans ta page ?

    Parce que si c'est le cas, l'évaluation du reste de ton code js ne passera pas...ce qui expliquerait que ca marche quand tu fais un response.write, qui passe avant le reste de la page

    Pour ie, regarde en bas a gauche, pour ff, ctrl+maj+j (ou firebug, aussi)

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/04/2014, 22h01
  2. Réponses: 6
    Dernier message: 12/05/2009, 00h36
  3. Code javascript dans page asp
    Par youyou2011 dans le forum ASP
    Réponses: 6
    Dernier message: 06/01/2008, 15h07
  4. intégration de code javascript dans une page asp.net
    Par Je-cherche-pfe dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 06/09/2007, 17h10
  5. Partager du code Javascript entre plusieurs pages HTML
    Par oceane751 dans le forum Général JavaScript
    Réponses: 29
    Dernier message: 10/01/2006, 15h20

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