Définir par programme Culture de l'Utilisateur, les Contrôles dans ASP.NET
J'aimerais définir par programme la culture de mon Contrôle de l'Utilisateur qui définit plusieurs Étiquettes, des Boutons et des zones de texte ...
Généralement, pour aspx-pages vous remplacer la InitializeCulture-Méthode et de définir la Culture et de la UICulture pour y parvenir, hélas ASCX-Contrôles n'ont pas cette Méthode, comment donc puis-je faire?
J'ai mis en place les ressources locales mycontrol.ascx.de-de.resx, mycontrol.ascx.resx et mycontrol.ascx.en-GB.resx, mais seulement les valeurs du fichier par défaut (mycontrol.ascx.resx) sont utilisés.
Merci d'avance.
Dennis
OriginalL'auteur Dennis Röttger | 2011-02-02
Vous devez vous connecter pour publier un commentaire.
La culture actuelle est thread-large:
Page.Culture
etPage.UICulture
effectivement misThread.CurrentThread.CurrentCulture
etThread.CurrentThread.CurrentUICulture
sous le capot.Si le contrôle de l'utilisateur est défini dans votre page de balisage, je ne pense pas qu'il n'y a rien que vous pouvez faire. Si vous le chargez avec
LoadControl()
, vous pouvez modifier temporairement la culture du thread en cours avant de l'appeler et de le restaurer par la suite, mais il serait plutôt difficile:est appelé très tôt dans le cycle de vie de page, donc tout devrait pari définie par le temps que vous chargez votre de contrôle de l'utilisateur. La phase durant laquelle avez-vous le charger?
- Je le charger pendant Page_Load - est-il une méthode plus appropriée pour elle? (Je veux juste de la charge une fois et il n'a pas besoin d'être chargées, c'est pourquoi je le charger dans le chargement de la page et seulement si le chargement occurrence n'est pas une publication)
le faire dans
Page_Load
est très bien, mais depuis chargés des contrôles utilisateur ne sont pas conservées dansViewState
, vous devriez probablement de la charge sur chaque demande.J'ai déjà été confronté à ce problème et résolu à l'aide d'un UpdatePanel, la persistance du Contrôle est d'aucun intérêt pour moi à ce moment - merci pour votre thoughfulness. Cependant, mon Resourceproblem persiste encore que je ne vois aucun moyen de définir la Culture de mon Contrôle, même si elle est définie sur la page aspx.
OriginalL'auteur Frédéric Hamidi
J'ai aussi passé des heures sur ce problème et a finalement obtenu Cette solution.
Vous n'avez qu'à remplacer le
FrameworkInitialize()
au lieu deinitilizeculture()
,par exemple:
Jus, Mettez ce code à l'intérieur de votre ascx.cs fichier, Ce remplacer la fonction n'a pas besoin d'être appelé.
OriginalL'auteur SIbghat
J'ai utilisé le code suivant pour modifier la langue de l'asp.net mvc dans ma page de projet
aussi j'ai utilisé usercontrol (ascx) sur la même page.quand j'ai changé de langue avec actionlink est changé viewpage langue, mais de contrôle de l'utilisateur pageload l'événement n'est pas de capturer le changement des viewpage de changements de langue, mais usercontrol langue ne change pas
OriginalL'auteur fatih