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 :

Response.Write, Javascript et Pop-up


Sujet :

ASP.NET

  1. #1
    Membre confirmé Avatar de Gunny
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Danemark

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 188
    Points : 628
    Points
    628
    Par défaut Response.Write, Javascript et Pop-up
    Bonsoir à tous !

    J'ai un petit problème actuellement que j'aimerais vous soumettre.

    J'ai dans une classe cette fonction statique :

    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
     
    //Vérifie si la ville passée en paramètre existe dans la base de données.
    //Si non, ouvre un pop-up invitant l'utilisateur à effectuer une demande 
    // d'ajout de ville par mail aux administrateurs
    public static bool Verif_Ville(string ville, Page page)
    {
      bool is_verif_ok;
     
      //...
      //Opérations dans la base de données...
      //...
     
      if (is_verif_ok)
        return true;
     
      page.Response.Write("<script language='JavaScript' type=\"text/javascript\">");
      page.Response.Write("window.open('~/Pages/gestion/popup_ville.aspx?ville='" + ville + " ,'PopUp','location=no,toolbar=no,status=no,menubar=no,scrollbars=yes,width=500, height=410');");
      page.Response.Write("</script>");
      return false;
    }
    Voilà, le commentaire est assez explicite je ense (j'ai sauté le sopérations dans la BD, elles fonctionnent bien).

    Le problème, c'est que quand j'appelle cette fonction dans le codebehind d'une page, le script n'est pas écrit.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tools.Verif_Ville(txt_ville.Text, this);
    Donc, pas de pop-up. Je me demande d'où ça vient car si je remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    page.Response.Write("<script language='JavaScript' type=\"text/javascript\">");
      page.Response.Write("window.open('~/Pages/gestion/popup_ville.aspx?ville='" + ville + " ,'PopUp','location=no,toolbar=no,status=no,menubar=no,scrollbars=yes,width=500, height=410');");
      page.Response.Write("</script>");
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    page.Response.Write("ha ha");
    "ha ha" est bien écrit dans la page.

    Si quelqu'un a une idée d'où ça vient, ou si je peux faire ça autrement...

    Merci

  2. #2
    Expert éminent sénior

    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 : 46
    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
    Points : 12 465
    Points
    12 465
    Par défaut
    salut,

    si tu regardes dans le source de ta page, est-ce que tu trouves ta fonctin, ou pas ? parce que vu comme ca, ca ressemble a une erreur javascript

    remplace window.open(... par un , pour voir

    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.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2004
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Points : 581
    Points
    581
    Par défaut
    Sinon essai avec un RegisterStartupScript.
    c'est dans Page.ClientScript.

    Passe en paramétre ta page si ta classe n'est pas dans un context de page.
    L'Homme est doté de 2 yeux et de 2 oreilles pour voir et entendre deux fois plus qu'il ne parle

    Je ne réponds pas au questions par mp. Merci

  4. #4
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    pas convaincu que le tilde marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.open('~/Pages/gestion/popup_ville.aspx?ville
    c'est une chaine et le tilde ne sera pas interprété comme dans le cas d'un Redirect je pense. à vérifier

    sinon, je plussoie l'utilisation du RegisterStartupScript



    de plus, le probleme du response.write, cest que ca écrit pas forcément où tu veux dans la page, souvent tout au début, avant même la balise <html>
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  5. #5
    Expert éminent sénior

    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 : 46
    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
    Points : 12 465
    Points
    12 465
    Par défaut
    sans regarder le tilde, si c'est un pur copier-coller, la chaine du windows.open est malformee...avec une ville genre, Paris, ca rendrait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.open('~/Pages/gestion/popup_ville.aspx?ville='Paris,'popup','blabla...');

    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.

  6. #6
    Membre confirmé Avatar de Gunny
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Danemark

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 188
    Points : 628
    Points
    628
    Par défaut
    Vous allez rire mais... ça vient bien de là
    J'avais juste mal placé une quote, et du coup le script ne s'écrivait même pas dans la page. J'en ai profité pour implémenter le registerstartupscript à la place aussi.

    Par contre, en effet, le tilde ne fontionne pas. J'ai cherché mais je ne vois pas trop comment m'en tirer simplement, parce qu'on dirait que le javascript ne comprend que l'adresse relative.

  7. #7
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    le tilde n'est connu QUE par le serveur .Net, rien d'autre. c'est donc normal que le javascript ne le comprenne pas. à toi de construire l'URL à partir de l'objet Request par exemple et ensuite "enregistrer" ton script
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  8. #8
    Membre confirmé Avatar de Gunny
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Danemark

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 188
    Points : 628
    Points
    628
    Par défaut
    C'est bon en fait, au lieu de "~/Pages/...", j'ai simplement écrit "/MonSite/Pages/..."

    Merci à tous !

  9. #9
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    Citation Envoyé par Gunny Voir le message
    C'est bon en fait, au lieu de "~/Pages/...", j'ai simplement écrit "/MonSite/Pages/..."

    Merci à tous !
    pas forcément parfait dans le sens où si demain, tu déplaces un fichier dans ton arbo de projet comme la page ouverte par le popup (déplacer dans le sens profondeur d'arbo), le lien marchera plus. il faut mieux avoir des adresses qui se calculent d'elles même (quand c'est possible et ca l'est p-e pas dans ton cas, juste j'en parle )
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  10. #10
    Expert éminent sénior

    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 : 46
    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
    Points : 12 465
    Points
    12 465
    Par défaut
    Citation Envoyé par Louis-Guillaume Morand Voir le message
    il faut mieux avoir des adresses qui se calculent d'elles même (quand c'est possible et ca l'est p-e pas dans ton cas, juste j'en parle )
    PopupUrlFactory ?


    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.

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

Discussions similaires

  1. ASP.NET JavaScript Response.Write
    Par hippoX dans le forum ASP.NET
    Réponses: 9
    Dernier message: 05/06/2007, 12h16
  2. Erreur avec response.write et <TABLE>
    Par angelevil dans le forum ASP
    Réponses: 4
    Dernier message: 11/03/2005, 14h48
  3. inserer des " dans un response.write
    Par jefferson dans le forum ASP
    Réponses: 4
    Dernier message: 30/12/2004, 11h05
  4. Response.Write sur plusieurs lignes
    Par simoryl dans le forum ASP
    Réponses: 2
    Dernier message: 31/08/2004, 22h49
  5. Perdue dans les Response.Write...
    Par Tapioca dans le forum ASP
    Réponses: 4
    Dernier message: 11/07/2004, 11h54

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