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 :

panel ajax + raffraichissement + postback


Sujet :

ASP.NET

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Points : 295
    Points
    295
    Par défaut panel ajax + raffraichissement + postback
    Bonjour,

    Petite question AJAX.

    J'ai un formulaire avec plusieurs zones de saisies Tout ca est englobé dans un UpdatePanel. Dans les textbox j'ai associé une fonction au OnTextChanged et activer l'autopostback.

    Donc quand je tabule de ma zone de texte je passe dans ma fonction et effectue un contrôle jusqu'ici tout va bien.

    Par contre en fait lors du raffraichissement partiel j'ai ma page complète qui disparait et réapparait à peine 1/4 de seconde plus tard mais en fait visuellement c'est très moche.

    Y'a t'il un moyen de ne pas déclencher ce "saut" d'affichage ? Parce que du coup l'ajax dans ce cas perd un peu d'intérêt.

    merci d'avance

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    Je n'ai jamais eu de scintillement avec un UpdatePanel : es-tu sur que tu fais bien un rafraichissement partiel et non total ?#


    Un peu de code peut-etre ? ...

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Points : 295
    Points
    295
    Par défaut
    Ben je pense que c'est raffraichissement partiel ou alors jya un truc que j'ai pas compris.

    Le code

    Un script manager en début de page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
    Un update panel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
    une text box
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:TextBox ID="Pseudo" runat="server" OnTextChanged="Pseudo_Existe" autopostback ="true"  ></asp:TextBox>
    Balise de fin de content template
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      </ContentTemplate>
            </asp:UpdatePanel>

    Voili voilou quand je passe dans la fonction Pseudo_Existe j'obtient le phénomène dont je parle au dessus

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    Met la propriete UpdateMode de ton UpdatePanel a Conditional. Ca te permettra de lancer tes rafraichissements partiels manuellement. Tu controleras mieux ce qui se passe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">

    Ensuite pour lancer ton rafraichissement tu appelles
    dans ton code behind. En l'occurence si j'ai bien compris ton code tu le mets a la fin de ta methode Pseudo_Existe. Si c'est bien a ce moment la que tu veux lancer un rafraichissement ...

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Points : 295
    Points
    295
    Par défaut
    Je vais essayer ca. je vous tient au courant.

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Points : 295
    Points
    295
    Par défaut
    Bon j'ai testé mais dans mon cas ca change rien..

    Par contre je viens de faire un test avec mozilla et la pas de problème..
    Il me semblait que sous IE7 avant ca marchait correctement..


    N'y a t'il pas un paramètre dans IE à changer.... si oui lequel ?


    je vais essayer de tester avec un autre PC pour voir si ca vient d'un paramétrage de mon IE

  7. #7
    Membre habitué Avatar de issou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 181
    Points : 136
    Points
    136
    Par défaut
    Et les Trigger les amis ? vous les avez omis ... .Tu dois mettre des declencheurs de type Asynchrone sur l'evement TextChanged de ton textbox et l'envoyé vers ton event en code behind . Là tu pourra faire un UpdatePanel.Update().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="TxtBox" EventName="TextChanged"/> 
    </Triggers> 
    
    Voir la doc dans la MSDN ou ce lien comme exemple : http://www.codegod.de/WebAppCodeGod/...AX-AID282.aspx

    Bon codage.
    L'homme est prédestiné à l'objet de ses propres choix .

  8. #8
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Points : 444
    Points
    444
    Par défaut
    Et les Trigger les amis ? vous les avez omis ... .Tu dois mettre des declencheurs de type Asynchrone sur l'evement TextChanged de ton textbox et l'envoyé vers ton event en code behind . Là tu pourra faire un UpdatePanel.Update().
    Normalement pas besoins, car tous les contrôles de l'update panels font partie des triggers en AsyncPostBack, à moins de positionner l'attribut ChildrenAsTrigger à false

  9. #9
    Membre habitué Avatar de issou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 181
    Points : 136
    Points
    136
    Par défaut
    Je pense que dans son cas oui , il met l'event sur les contrôles avec l'autopostback à true plutôt que de laisser le UpdatePanel Checker les evenements des contrôles qu'ils contient via les triggers .

    Déjà , en mettant l'autoPostback à false sur ses TxtBox ca devrait règler le soucis de raffraichissement .
    L'homme est prédestiné à l'objet de ses propres choix .

  10. #10
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Points : 444
    Points
    444
    Par défaut
    Déjà , en mettant l'autoPostback à false sur ses TxtBox ca devrait règler le soucis de raffraichissement .
    Bien non, car à ce moment là ça ne va pas générer de PostBack (partiel ou non), donc il n'y aura pas de rafraîchissement. Or ici, il a besoin d'un rafraîchissement. Mais il est possible que la spécification manuelle du Trigger résolve son problème, mais ce n'est pas logique. Le fait de mettre l'attribut Autopostback à vrai ne génère pas un postback complet de l'inteface graphique dans un UpdatePanel, tu peux faire le test sur une appli simple, je l'ai déjà fait avec une liste déroulante.

  11. #11
    Membre habitué Avatar de issou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 181
    Points : 136
    Points
    136
    Par défaut
    Bien non, car à ce moment là ça ne va pas générer de PostBack (partiel ou non), donc il n'y aura pas de rafraîchissement.
    Tout à fait ,dans mon cas c'est le trigger qui s'en charge . C'est son rôle .

    Le fait de mettre l'attribut Autopostback à vrai ne génère pas un postback complet de l'inteface graphique dans un UpdatePanel,
    C'est possible , si tu l'as testé ...
    L'homme est prédestiné à l'objet de ses propres choix .

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Points : 295
    Points
    295
    Par défaut
    En fait un truc que je comprends pas j'ai mis une zone date en dehors des updates panel et dans le page_load je modifie la contenance de cette date.

    quand une routine ajax se déclenche je vois la date se mettre a jour est ce normal ?

    je croyais que seul ce qui était dans l'update panel était mis à jour ?

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    Ahah !

    Bien sur que non ! Ca veut bien dire que ton UpdatePanel ne marche pas.
    Au passage si ta date doit etre mise a jour, colle-lui un UpdatePanel.

    Ensuite fait comme oyigit et issou te disent : change ta valeur Autopostback a false pour voir

  14. #14
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Points : 295
    Points
    295
    Par défaut
    Non la date ne doit pas être mise à jour....
    c'était pour tester si la mise à jour était partielle ou non..

    si je met l'autopostback a false alors les routines ne se séclenchent plus je vais essayer en mettant a false + trigger.

  15. #15
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Points : 295
    Points
    295
    Par défaut
    Tout d'abord merci à ceux qui m'aident...

    Alors heureusement j'ai fait pas mal de sauvegarde.. J'ai remonté la même page d'une ancienne version du projet et tout fonctionnait normalement.

    La date ne se met pas a jour en dehors de l'update panel...

    J'ai donc copié ma "vieille" page(qui fonctionne correctement) dans mon nouveau projet et la boum ca fonctionne bizaremment.....

    Conclusion : C'est autre chose qui fait que la page a un fonctionnement anormal...
    Ca réagit comme ci tout le site était dans un gros Update panel...


    Option dans le web config ?
    Option dans le global asax ?

    PS : Entre les deux versions il y a eu bcp de modification dans le webconfig n'y a t'il pas une option ( dans les validate request ou httpmodule) par exemple qui poserait problème.

  16. #16
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    Ce qui va etre dur c'est que tu n'as aucune erreur apparente.
    Personnellement je ne vois qu'une solution : refaire tes changements progressivement pour voir ce qui cause l'erreur.

  17. #17
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Points : 295
    Points
    295
    Par défaut
    c'est ce que je me dis mais là ca va être sportif..
    parce qu'il y a un bon mois de développement à deux dessus...


    Sinon personne a connaissance de paramètres dans le web config qui influerait sur le comportement ajax des pages

  18. #18
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    Si j'ai bien compris tes tests, tu as seulement mis ton ancienne page dans ton projet a jour. Le probleme vient donc de ta "nouvelle" page.

    Un peu plus de code detaille peut-etre ? Sur l'UpdatePanel par exemple

  19. #19
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Points : 295
    Points
    295
    Par défaut
    c'est ce que je me dis mais là ca va être sportif..
    parce qu'il y a un bon mois de développement à deux dessus...

    J'ai testé avec mon vieux webconfig et ca fonctionne correctement donc je peux supposer que ca vient de la....

    Sinon personne a connaissance de paramètres dans le web config qui influerait sur le comportement ajax des pages

  20. #20
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Points : 295
    Points
    295
    Par défaut
    Citation Envoyé par Larger Voir le message
    Si j'ai bien compris tes tests, tu as seulement mis ton ancienne page dans ton projet a jour. Le probleme vient donc de ta "nouvelle" page.

    Un peu plus de code detaille peut-etre ? Sur l'UpdatePanel par exemple

    Non j'ai essayé l'inverse ma nouvelle page dans mon ancien projet et la elle fonctionne nickel.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Panel ajouté, Viewstate & Postback
    Par conan76 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 24/06/2011, 20h00
  2. Panel et raffraichissement 60x/s
    Par Risike dans le forum Windows Forms
    Réponses: 14
    Dernier message: 02/03/2009, 13h49
  3. [Swing] Raffraichissement de panel
    Par yoshï dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 18/04/2006, 17h44

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