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 :

Rechargement d'une page via Response.redirect


Sujet :

ASP.NET

  1. #1
    Membre averti Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Points : 341
    Points
    341
    Par défaut Rechargement d'une page via Response.redirect
    Bonjour,

    j'ai ajouté à un site la gestion de la globalisation (choix de la langue d'affichage).
    Lors du click sur un lien cette méthode s'exécute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if (Session["User-Language"] == null)
    {
         Session["User-Language"] = "fr-FR";
    }
    string ses = Session["User-Language"].ToString();
    CultureInfo lng = new CultureInfo(ses);
    Thread.CurrentThread.CurrentCulture = lng;
    Thread.CurrentThread.CurrentUICulture = lng;
    base.InitializeCulture();
    Response.Redirect(Request.Path);
    Ceci fonctionne très bien pour ce qui est du choix de la langue, cependant, l'appel à Response.Redirect effectue une réelle redirection (normal) du coup, je perds l'état de ma page (saisie dans les champs, choix de l'onglet ...)

    Je voulais savoir s'il n'existait pas un autre moyen d'effectuer un rechargement de la page sans response.redirect

    Merci

    Shiv@
    Shiv@ Skunk

  2. #2
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Le simple PostBack ne suffit pas ?
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  3. #3
    Membre averti Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Points : 341
    Points
    341
    Par défaut
    Non cela ne suffit pas car la méthode qui initialise la culture d'une page est exécutée avant le page_load, ce qui fait que les éléments sont déjà créés. Il faut deux postback pour changer la langue d'où le reponse.redirect
    Shiv@ Skunk

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Salut,

    Et si tu passais ces paramètres dans ton adresse?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Redirect("tapage.aspx?User-Language=fr-FR");

  5. #5
    Membre averti Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Points : 341
    Points
    341
    Par défaut
    Je ne vois pas en quoi ça m'aiderai, le changement de langue est bien exécuté, c'est juste qu'à cause du response.redirect, l'état de ma page n'est pas conservé (cases cochées, liste triée, champs saisis ...)

    je voulais donc savoir si en code behind il était possible de lancer un rechargement de la page (en gros déclencher un postback du serveur)
    Shiv@ Skunk

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 114
    Points : 122
    Points
    122
    Par défaut
    de mémoire il te faut surcharger la méthode InitializeCulture de ta page

    Ah j'ai retrouvé la doc http://msdn.microsoft.com/en-us/libr...zeculture.aspx

    Regarde c'est très simple. J'ai du code qui fait ça quelque part. Si je remet la main dessus je te le mettrai ici

  7. #7
    Membre averti Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Points : 341
    Points
    341
    Par défaut
    Est-ce que quelqu'un pourrait lire mon problème avant de répondre ?

    Le changement de langue ne pose pas problème, la méthode initializeculture est bien surchargée le seul problème est que cela me recharge la page sans tenir compte de ce qui a été fait avant du coup elle est bien dans la bonne langue mais réinitialisée.

    Alors que si je ne mets pas le Response.Redirect, il faudra attendre le prochain postback pour que le texte soit dans la langue choisie
    Shiv@ Skunk

  8. #8
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    A moins que de conserver toutes les valeurs de tes champs en session ou de les passer dans le querystring de ton redirect, je ne pense pas que ce soit faisable...

    Une autre "astuce" est de provoquer un "double appel" client... mais c'est vraiment pas top... Lors de la demande de changement de langue, tu injecte un javascript qui provoque un postback dès le chargement de la page et comme ça, ça devrait faire ce que tu souhaites !
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  9. #9
    Membre averti Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Points : 341
    Points
    341
    Par défaut
    Effectivement c'est une astuce à laquelle j'ai pensé mais je préfère ne l'utiliser qu'en dernier recours, j'aimerai mieux trouver une solution plus "propre" si possible.
    Shiv@ Skunk

  10. #10
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par Shiva Skunk Voir le message
    Est-ce que quelqu'un pourrait lire mon problème avant de répondre ?
    Les gens essayent de t'aider, ne t'énerve pas.

    Citation Envoyé par Shiva Skunk Voir le message
    Le changement de langue ne pose pas problème, la méthode initializeculture est bien surchargée le seul problème est que cela me recharge la page sans tenir compte de ce qui a été fait avant du coup elle est bien dans la bonne langue mais réinitialisée.
    As-tu pensé à PreRender, PreInit ou PreLoad??

  11. #11
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Citation Envoyé par patachouNewG Voir le message
    As-tu pensé à PreRender, PreInit ou PreLoad??
    En fait, le InitializeCulture() survient avant le PreInit...
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  12. #12
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Autant pour moi...

  13. #13
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 233
    Points : 336
    Points
    336
    Par défaut
    Mettre le changement de langue dans une DropDownList et gérer le PostBack lors du changement d'index de la DropDownList avec la propriété :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    OnSelectedIndexChanged="monDropDownList_SelectedIndexChanged"
    ?
    "Hope for the best, but prepare for the worst."

  14. #14
    Membre averti Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Points : 341
    Points
    341
    Par défaut
    le postback est géré sur un onclick déjà, ça fera pareil avec une dropdownlist
    tant pis, j'utilise la méthode là l'arrache tant que je ne trouve rien d'autre
    Shiv@ Skunk

  15. #15
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Points : 707
    Points
    707
    Par défaut
    fais voir un response redirect avec ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Response.Redirect(System.Web.HttpContext.Current.Request.RawUrl);
    Moi je fais la meme chose et cela fonctionne. Je surcharge InitializeCulture, je crée une variable de Session ou je stocke la valeur de la langue, 3 hyperlinks pour les langues, quand je clique je mets la nouvelle valuer de la langue et après le response.redirect que je t'ai mis.

    A essayer

  16. #16
    Membre averti Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Points : 341
    Points
    341
    Par défaut
    Le problème est toujours le même, après le response.redirect, je perds le viewstate de ma page

    Merci quand même
    Shiv@ Skunk

  17. #17
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Et si tu sauves ton viewstate en session et que tu le restaure lors de l'événement LoadViewState lors de ton Response.Redirect ?
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  18. #18
    Membre averti Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Points : 341
    Points
    341
    Par défaut
    Haaa .. tu m'intéresses

    je vais voir

    EDIT :
    Je n'arrive pas à sauvegarder mon viewstate, lors de l'appel à la méthode SaveViewState(), elle retourne null à chaque fois
    Shiv@ Skunk

  19. #19
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    SaveViewState est un des événements de la page, tu peux le surcharger et sauver ton viewstate dedans non ?
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  20. #20
    Membre averti Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Points : 341
    Points
    341
    Par défaut
    Lorsque la méthode SaveViewState retourne null c'est que le viewstate est vide.

    donc même si je la surcharge, je n'aurais rien à sauvegarder
    Shiv@ Skunk

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

Discussions similaires

  1. [OpenTBS] Système de template - Rechargement d'une page
    Par fadeninev dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 27/06/2006, 14h29
  2. Réponses: 3
    Dernier message: 15/06/2006, 11h48
  3. firefox : rechargement d'une page
    Par menuge dans le forum Firefox
    Réponses: 4
    Dernier message: 16/05/2006, 16h49
  4. comment éviter le rechargement d'une page?
    Par srikta dans le forum ASP
    Réponses: 2
    Dernier message: 13/04/2006, 10h54
  5. Rechargement d'une page après ouverture de deux popups
    Par petitmoosse dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/11/2005, 16h39

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