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) charger une page aspx dans un div


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 21
    Points : 16
    Points
    16
    Par défaut (AJAX) charger une page aspx dans un div
    Bonjour,

    Je vous explique ce que je souhaite faire.

    j'ai un menu qui est constitue de "asp:linkbutton".

    j'ai un "div" qui me sert de corps du site.

    Je souhaite charger une page aspx dans ce corps via les linkbutton SANS recharger la totalité de la page (d'où l'utilité d'ajax)...

    Dans un premier temps, est ce possible? Si oui, quelle est la démarche à suivre s'il vous plait ???

    J'espère avoir été assez clair.

    Merci d'avance pour vos réponses.

  2. #2
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut
    ASP.NET AJAX? Ou juste AJAX fait à la main?

    Si ASP.NET AJAX, tu as la possibilité d'utiliser une master page avec une content page qui est inclue dans un UpdatePanel et donc là tu arrives à quelque chose d'équivalent mais de bien plus propre que ce que tu proposes.

    Didier Danse

    Most Valuable Profesionnal SharePoint
    Microsoft Certified Application Developer
    Mes articles sur developpez.com
    Mon site perso


  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    c'est exactement comme ça que je fait, enfin je pense...

    voici les extraits de code concernés :

    le menu (tres simple):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
                            <div id="menu">
     
                                <div id="TitreMenu">
                                    Menu
                                </div>
     
                                <asp:LinkButton ID="lb1" runat="server" 
                                                Text="Rafraichir via Ajax"  
                                                onclick="lb1_Click"  />       
                            </div>

    le corps (attention il y UpdateProgress avec...):

    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
     
     <!--  utilisation de la lib AJAXTOOLKIT,  UpdatePanelAnimationExtender & UpdateProgress--> 
                                <asp:UpdatePanel ID="corps" runat="server" UpdateMode="Conditional" RenderMode="Block">
                                    <ContentTemplate>
                                         <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"  Visible="false">  
                                         </asp:ContentPlaceHolder>
                                    </ContentTemplate>
     
                                    <Triggers>
                                        <asp:AsyncPostBackTrigger ControlID="lb1" />
                                    </Triggers>
                                </asp:UpdatePanel>
     
                                <ajaxToolkit:UpdatePanelAnimationExtender ID="monUpdatePanelAnimationExtender"
                                      runat="server" TargetControlID="corps">
                                         <Animations>
                                            <OnUpdating>
                                                <sequence> 
                                                    <Parallel duration=".80" Fps="40">
                                                            <Resize Height="0" />
                                                    </Parallel>
                                                    <ScriptAction Script="envoieRequete('./unepage.aspx' , 'corps');" />
                                                </sequence>
                                            </OnUpdating>
                                            <OnUpdated>  
                                                <sequence>
                                                    <Parallel duration=".80" Fps="30">   
                                                            <Resize HeightScript="500" />
                                                    </Parallel>    
                                                </sequence>
                                            </OnUpdated>
                                        </Animations> 
                                </ajaxToolkit:UpdatePanelAnimationExtender>      
     
                                <asp:UpdateProgress ID="UpdateProgress1" runat="server">
                                    <ProgressTemplate>
                                      <img src="./images/chargement.gif"  alt="attente" />
                                    </ProgressTemplate>
                                </asp:UpdateProgress>
    voici ma fonction ajax pour charger une page:
    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
     
    envoieRequete = function (url,id)
    {
    var xhr_object = null;
    var position = id;
    if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
    else
    if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
     
    // On ouvre la requete vers la page désirée
    xhr_object.open("GET", url, true);
     
    xhr_object.onreadystatechange = function()
    {
        if ( xhr_object.readyState == 4 )
        {
        // j'affiche dans la DIV spécifiées le contenu retourné par le fichier
        document.getElementById(position).innerHTML = xhr_object.responseText;
        }
    }
     
    // dans le cas du get
    xhr_object.send(null);
     
    }

    Les animations se déclenchent bien, mais voici l'erreur que j'obtiens:

    "document.getElementById(position) has no properties
    http://localhost:1239/AjaxControlToolkitWebSite1/
    Line 27"



    C'est à croire que lors de l'exécution le div 'corps' n'existe pas !!!

    Quelqu'un pourrait-il m'expliquer pourquoi ?

    Merci d'avance pour vos réponses...

Discussions similaires

  1. charger une page html dans un div
    Par mantalo dans le forum jQuery
    Réponses: 2
    Dernier message: 16/06/2010, 12h41
  2. Insérer une page JSP dans un DIV avec AJAX
    Par sethi dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 31/03/2010, 21h04
  3. Charger une page aspx dans une autre
    Par Hafiz.B dans le forum ASP.NET
    Réponses: 2
    Dernier message: 09/01/2010, 14h19
  4. Charger une page aspx dans une autre
    Par KoalaVS dans le forum ASP.NET
    Réponses: 8
    Dernier message: 26/11/2009, 10h51
  5. [AJAX] Charger une page php dans un div
    Par drannh dans le forum Général JavaScript
    Réponses: 30
    Dernier message: 14/05/2008, 12h16

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