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 :

Enchainement de Response.redirect


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 31
    Points : 23
    Points
    23
    Par défaut Enchainement de Response.redirect
    Bonjour,

    Je vous donne le contexte :
    Lors de la validation d'un formaulaire, il y a un traitement assez lourd qui doit tourner.
    Pour éviter le sablier/page blanche, j'ai penser faire la transition avec une page d'attente !
    J'avais donc pensé à un enchainement de ce type :
    1 Validation du formulaire
    2 Redirection vers une page avec un message d'attente
    3 nouvelle redirection vers la page de résultat (pendant qu'elle se calcule, la page d'attente reste affichée)
    4 Une fois le traitement terminée, la page de résultat s'affiche.

    Pouvez vous me dire si cet enchainement est réalisable ? Et par quel moyen je peux effectuer ces redirections ?

    Car avec les response.redirect de manière basique, ma page d'attente n'apparait même pas, et si j'essaye de faire un Response.flush, on me dit que c'est impossible de faire un flush avant un redirect !!!

    Globalement, pour vous donner un exemple, ce serait le même principe d'attente que sur le site de réservation de la sncf !

    Merci d'avance pour vos conseils ...

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 43
    Points : 43
    Points
    43
    Par défaut
    Bonjour,

    A ta place j'effectuerai la validation de ton formulaire via une requête AJAX, et le temps qu'elle s'execute t'affiche un spinner ou autre chose sur la page

    ++

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Merci pour ta réponse, mais malheureusement, je dois me contenter de l'ASP.NET tout court. Pas d'AJAX !
    C'est bien là le soucis ...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Points : 23
    Points
    23
    Par défaut
    te trouve tu dans une page aspx ou ascx ?

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Points : 553
    Points
    553
    Par défaut
    Pourquoi ne pas gérer l'attente sur ta page courante ?
    Un exemple très simple :
    L'HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <form id="form1" runat="server">
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
        <div id="waitingMessageDiv" style="display:none">Merci de patienter...</div>
    </form>
    Le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    method_qui_va_bien
    {
        this.Button1.OnClientClick = "javascript:document.getElementById('waitingMessageDiv').style.display = 'block';";
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Thread.Sleep(10000);
    }
    Tu peux très bien masquer ton formulaire de saisie en même temps.

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 31
    Points : 23
    Points
    23
    Par défaut Merci
    Merci pour ta réponse BCmDev !
    Elle me convient tout à fait et elle marche à la perfection.

    Si cela ne te dérange pas j'ai deux détails sur lesquels j'aimerai avoir ton avis :

    1 - Est il possible d'utiliser ce principe au chargement d'une page (Càd sans que ce soit un appui sur un bouton, mais que le message d'attente apparaisse avant le chargement des données) ?

    2 - Pendant que le message d'attente tourne, est il possible de bloquer les boutons et composants de la page ?? J'ai essayé dans le code de la page, mais les modifs ne sont prises en compte qu'au postback ! (Ce doit être encore en javascript, c'est ça ?)

    Encore merci pour ton aide ...

    A+

  7. #7
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Points : 553
    Points
    553
    Par défaut
    Pour le premier point, ça devient plutôt compliqué... Il faudrait rendre la page afin d'afficher le message d'attente et qu'un javascript (sur le onload du document par exemple) soumette le formulaire pour demander au serveur de charger les données. Pas terrible... Dans ce cas, mieux vaut à mon avis passer carrément par une autre page dédiée à l'attente... Tu auras sûrement des avis plus pertinents de la part d'autres personnes.
    Pour le second point, ça doit pouvoir se régler avec du javascript : tu désactives tes boutons puis tu effectues un appel manuel à la fonction __doPostBack.

  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 31
    Points : 23
    Points
    23
    Par défaut
    Ok, merci, en tout cas, j'ai trouvé une solution qui me convient, donc c'est parfait. Je creuserai plus tard sur les optimisations possibles !

    Encore merci,

    A+

  9. #9
    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
    Ta solution est la même que celle décrite dan ton premier post?

    Si non pourrait tu en dire un peu plus?

    Merci à toi.

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

Discussions similaires

  1. Faire Response.redirect vers un signet d'une page
    Par requiemforadream dans le forum ASP
    Réponses: 3
    Dernier message: 22/04/2005, 14h59
  2. Response.redirect() avec ancre nomée
    Par roots_man dans le forum ASP
    Réponses: 4
    Dernier message: 23/11/2004, 10h37
  3. probleme avec Response.Redirect
    Par nicerico dans le forum ASP
    Réponses: 2
    Dernier message: 06/08/2004, 16h21
  4. problème de response.redirect
    Par boucher_emilie dans le forum ASP
    Réponses: 5
    Dernier message: 06/07/2004, 10h10
  5. Réponses: 3
    Dernier message: 17/06/2004, 16h32

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