2010-02-04 14 views
0

J'ai implémenté une application Web ASP.NET qui prend en charge 5 langues différentes.Modifier la langue/la culture dans l'application Web ASP.NET avec Ajax

L'application Web dispose de 5 fichiers .resx qui contiennent les ressources nécessaires pour afficher le site Web dans les langues prises en charge. Pour afficher le site dans la langue que l'utilisateur a sélectionnée, j'ai défini Thread.CurrentThread.CurrentUICulture et Thread.CurrentThread.CurrentUICulture dans l'événement de page InitializeCulture.

Certaines pages sont dotées de UpdatePanels entourant le contenu. D'après ce dont je me souviens (il y a 3 ans, lorsque je faisais des recherches sur la mondialisation), pour changer de culture, vous devez faire une mise à jour complète de la page.

Alors, voici le problème:

L'utilisateur ouvre un onglet et commence à travailler sur une page qui a un UpdatePanel entourant le contenu.

Ensuite, l'utilisateur ouvre un autre onglet et sélectionne une nouvelle langue.

L'utilisateur revient à l'onglet d'origine et provoque une publication sur le serveur ... à ce stade, la page ne renvoie jamais le contrôle à l'utilisateur.

Comment contourner ce problème?

Merci,

-Frinny

Répondre

0

Pour contourner ce problème, je fini par le stockage des paramètres culturels de l'utilisateur dans un HiddenField pour chaque page (a fait cela dans le MasterPage vraiment). De cette façon, je peux accéder aux paramètres de culture/langue d'origine de l'utilisateur dans l'événement Page InitializeCulture. L'utilisateur devra cliquer sur entrer dans l'URL ou quitter la page pour utiliser la langue/culture «par défaut» sélectionnée dans l'autre onglet.