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 :

AJAX, IE et fichier aspx


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 14
    Par défaut AJAX, IE et fichier aspx
    Bonjour à tous !

    J'ai mis en place un code js classique de chargement de page dans une DIV.
    Ma page parente est un fichier ASPX et la page à charger aussi.
    Quand j'ai mis en place le code js, j'ai testé avec un fichier html et il se charge correctement dans tous les navigateurs classiques (safari/firox/ie)

    Mais dès que je remplace la page html par une page aspx, seul IE ne semble pas pouvoir la charger (étonnant...) et me génère une erreur de script "erreur de script inconnue".
    La ligne en question : maDiv.innerHTML=xhr.responseText;
    Est ce le innerHTML qui pose problème (et ce uniquement avec le contenu du aspx ? ) où est ce que le responseText semble mal interpréter ce type de page ?

    Merci d'avance pour vos aides, idées et remarques
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    var maDiv=null;
    var xhr = null;
     
    function getXhr()
     {
      if(window.XMLHttpRequest) xhr = new XMLHttpRequest(); 
      else if(window.ActiveXObject)
       {  
        try
         {
          xhr = new ActiveXObject("Msxml2.XMLHTTP");
         }
        catch (e)
         {
          xhr = new ActiveXObject("Microsoft.XMLHTTP");
         }
       }
      else 
       { 
        alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest, veuillez le mettre à jour"); 
        xhr = false; 
       } 
     }
     
     
    function pageAJAX(url,maDiv,contenu)
     {
      getXhr();
      xhr.onreadystatechange = function()
       {
        if(xhr.readyState == 4 && xhr.status == 200)
         {
     
          maDiv.innerHTML=xhr.responseText;
         }
       }
      xhr.open("GET",'page_asp_logiciels.aspx',true);
      xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      xhr.send(contenu);
     }
    Ah oui j'oubliais : j'ai remplacé une ancienne frame par une div

  2. #2
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Heu, désolé de ne aps répondre directement à ton intérogation, amis j'ai pas le niveau en xmlHttpRequest pour ça.

    Par contre, juste comme ça, au cas où tu ne connaitrais pas ou que tu y aurais pas pensé, est ce qu'un UpdatePanel ne ferais pas ton affaire ?

    Vu ton code, on dirait que tu veux simplement modifier une partie de la page sans tout recharger. Alors un updatePanel le fait assez bien (même si je rencontre un souci avec ne ce moment......)

    Qu'en dis tu ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 14
    Par défaut
    Bonjour et merci pour ta réponse !

    Je me suis donc renseigné sur la méthode dont tu parles et apparement cela ne semble pas marcher puisqu'on ne peut pas charger de pages dans les Panel. C'est là mon problème c'est que je ne peux pas intégrer les pages car elles sont trop complexes à reprendre.
    Je ne peux fonctionner qu'en chargement asynchrone et après avoir farfouiller à droite à gauche JS semble le plus simple et le plus flexible à mettre en oeuvre...

    Ou peut être peux tu me donner plus d'infos sur le UpdatePanel ? Peut être en effet qu'il est possible de charger une page et de pouvoir la modifier directement dans un panel (ou dans une div ???)

    Le principe étant de bannir l'iframe existante. Ah et j'oubliais... j'ai pas AJAX implanté sur mon VS... je fais tout avec mes petites menottes. J'ai cru comprendre que c'était obligatoire pour le updatepanel

  4. #4
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Donc, si je comprends bien, tu veux "simuler" une Iframe, qui n'en a pas l'air, mais juste la chanson.

    Vu que ta page de destination est en ASPX, tu peux facilement la transporter dans un ASCX.
    Ensute, tu peux facilement ajouter cet ASCX dans le ContentTemplate de l'UpdatePanel.

    Maintenant faudrait savoir ce que fais cette page exactement :
    - elle crache du code Jscript pour modifier la page à la volée
    - elle fait un vrai traitement client et/ou server

    DAns la premier cas, ben je sèche.
    Dans la deuxième, l'ASCX est une bonne solution, je pense.

    En gros le schéma auquel je pense est simple :
    - tu fais un coposant utilisateur avec ta page d'origine (ASCX)
    - tu monte ton UpadePanel dans ta page de base
    - sur le clique d'un bouton (ou tout autre évènement déclencheur que tu jugera utile) tu insère le Contrôle Utilisateur dans l'UpdatePanel (dans on ContentTemplate) en ayant pris soin de déclarer le Trigger qui va bien.

    Est ce que cela te conviens ?

  5. #5
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    C'est pas un peu lourd ASCX + UpdatePanel ?

    (c'est une question, je n'ai je crois jamais crée un ASCX, je me suis contenté de lire quelques tutos et forums à ce sujet)

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 14
    Par défaut
    Re moi ! aia j'avais pas vu mais en fait, je travaille sur VS2003 et je crois qu'on ne peut pas implémenter asp.net ajax dessus....
    Décidément !
    Par contre, il s'agit bien de la deuxième solution. Il y a un traitement serveur derrière et tout et tout !

Discussions similaires

  1. [RSS] Lecteur de flux en PHP (pour des fichiers .aspx)
    Par fadex dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 04/01/2007, 12h26
  2. Réponses: 2
    Dernier message: 01/12/2006, 12h39
  3. [HTML] Inclure un fichier .aspx dans une page HTML
    Par Miles Raymond dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 04/05/2006, 12h07
  4. [C#] Séparer les fichiers *.aspx et *.aspx.cs
    Par Joad dans le forum ASP.NET
    Réponses: 15
    Dernier message: 11/05/2005, 16h10

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