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 :

Probleme avec le changement de la langue avec le DropDownList


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
    Janvier 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 18
    Par défaut Probleme avec le changement de la langue avec le DropDownList
    Bonjour,

    Je crée un site web en anglais et en français, en utilisant les fichiers de ressources et la moteur interne de asp.net pour selectionner le bon fichier en fonction de la culture definie.

    Le changement de la langue se fait en selectionnant la langue dans la liste deroulante, avec AutoPostBack activé. Tout ça est defini dans la page master. La page global.asax sert pour lire la cookie et appliquer la culture.

    Le problème ce que le changement de la langue marche seulement pour la deuxieme fois, c'est a dire la premiere fois le changement de la valeur d'une combobox provoque seulement le refresh de la page, et la deuxieme fois la langue est changée.

    J'ai l'impression que la cookie n'est pas bien sauvegardé à la fin du DropDownList1_SelectedIndexChanged

    Aidez moi SVP, ça fait 3 jours que j'arrive pas a resoudre ce problème..

    La master 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    public partial class MasterPage : System.Web.UI.MasterPage {
        private string cookieName = "User-Language";
        protected void Page_Load(object sender, EventArgs e) {
            if (!Page.IsPostBack) {
                //quant on passe ici après le DropDownList1_SelectedIndexChanged la cookie est incorrecte
                DropDownList drl = (DropDownList)Page.Master.FindControl("chooseLanguageDropDownList");
                string language = String.Empty;
                HttpCookie oCookie = Request.Cookies[cookieName];
                if (oCookie != null) {
                    language = oCookie.Value;
                }
                if (language.Equals("en")) {
                    drl.SelectedValue = "English";
                }
                else if (language.Equals("fr")) {
                    drl.SelectedValue = "Français";
                }
            }
        }
        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            DropDownList drl = (DropDownList)Page.Master.FindControl("chooseLanguageDropDownList");
            HttpCookie cookie = new HttpCookie(cookieName);
     
            if (drl.SelectedValue == "English")
            {
                cookie.Value = "en";            
            }
            else if (drl.SelectedValue == "Français")
            {
                cookie.Value = "fr";            
            }
    //ici j'ai essayé tout pour sauvegarder cette cookie...
            Response.Cookies.Set(cookie);
            Response.Cookies.Add(cookie);
            Response.SetCookie(cookie);
     
            Response.Cookies[cookieName].Expires = DateTime.Now.AddYears(1);
     
            Server.Transfer(Request.Path);
            //aprés ça, la cookie reste bonne
         }
    }
    Global.asax
    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
        private string cookieName = "User-Language";   
        void Application_BeginRequest(object sender, EventArgs e)
        {
            string sLang = string.Empty;
            HttpCookie oCookie = Request.Cookies[cookieName];
     
            if (oCookie == null) {
                sLang = Request.UserLanguages[0];
                HttpCookie oCookieSet = new HttpCookie(cookieName);
                oCookieSet.Value = sLang;
                Response.SetCookie(oCookieSet);
            }
            else if (oCookie.Value != null) {
                sLang = oCookie.Value;
            }
     
            Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(sLang);
            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(sLang);
        }

  2. #2
    Membre éclairé Avatar de gdkenny
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 251
    Par défaut
    Salut,

    Si ton code s'exécute à partir de la seconde fois c'est qu'il est bon.
    Je pense que ton problème est lié au déclenchement des événements:
    Vérifie que ton code s'éxécute bien quand tu veux qu'il s'exécute:

    fait des response.write à l'entrée des méthodes Application_BeginRequest,Page_Load et DropDownList1_SelectedIndexChanged

    et regarde sur ta page html si l'enchainement des événements est pareil au 1er et au second changement de langue.

    Cf tutoriel sur le cycle de vie des pages aspx le cas échéant.

    Bon courage!

Discussions similaires

  1. changement de langue avec minitoc
    Par Celano dans le forum Débuter
    Réponses: 2
    Dernier message: 03/06/2012, 18h59
  2. [POO] Problème de langue avec la classe phpmailer
    Par sansouna24 dans le forum Langage
    Réponses: 10
    Dernier message: 05/01/2012, 16h14
  3. probleme avec le changement dans une ArrayList
    Par Hisoka_Hunter dans le forum C#
    Réponses: 1
    Dernier message: 15/02/2008, 17h56
  4. Problème avec mysql - changement d'hébergement
    Par Samuel78 dans le forum Administration
    Réponses: 11
    Dernier message: 12/08/2006, 17h06
  5. [VB6]probleme de langue avec word
    Par nsanabi dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 12/03/2006, 17h46

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