Legen Sie programmgesteuert die Kultur des User Controls ASP.NET
Ich würde gerne, um programmgesteuert die Kultur meines User Control, die definiert, mehrere Labels, Buttons und Textfeldern ...
In der Regel, für aspx-Seiten, die Sie überschreiben Sie die InitializeCulture-Methode und set-Culture und UICulture um dies zu erreichen, leider ASCX-Controls nicht über diese Methode, also wie genau kann ich dies tun?
Ich habe die lokalen Ressourcen mycontrol.ascx.de-DE.resx, mycontrol.ascx.resx und mycontrol.ascx.en-GB.resx-aber nur die Werte der Standard-Datei (mycontrol.ascx.resx) verwendet werden.
Vielen Dank im Voraus.
Dennis
InformationsquelleAutor Dennis Röttger | 2011-02-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den aktuellen Kultur-thread-Breite:
Page.Culture
undPage.UICulture
eigentlichThread.CurrentThread.CurrentCulture
undThread.CurrentThread.CurrentUICulture
unter der Haube.Wenn das Benutzersteuerelement definiert ist, in Ihrem markup der Seite, ich glaube nicht, dass es etwas gibt, was Sie tun können. Wenn Sie laden Sie es mit
LoadControl()
können Sie vorübergehend außer Kraft setzen, die die aktuelle thread-Kultur vor dem Anruf, und stellen Sie Sie danach, aber es wäre ziemlich ungeschickt:sehr früh in der Lebenszyklus der Seite, also alles sollte Wette zu setzen, indem die Zeit, die Sie laden Sie Ihre Benutzer Steuern. Während die phase wollen Sie laden?
Ich laden Sie es während des Page_Load - gibt es eine besser geeignete Methode für Sie? (Ich will einfach nur laden Sie es einmal und es muss nicht wieder geladen werden, deshalb lade ich es in die Seite laden und nur wenn die Belastung vorkommen ist nicht ein postback)
tut es in
Page_Load
ist in Ordnung, aber da geladen werden Benutzer-Steuerelemente werden nicht beibehalten, imViewState
werden, sollten Sie wahrscheinlich laden Sie es auf jede Anfrage.Ich habe bereits konfrontiert mit diesem problem und löste es mit einem UpdatePanel, die Beharrlichkeit, mit der die Kontrolle ist keine Sorge um mich an den moment - danke für deine thoughfulness obwohl. Aber, meine Resourceproblem noch besteht wie ich sehen kann, keine Möglichkeit, die Kultur für meine Kontrolle, obwohl es eingestellt ist auf der aspx-Seite.
InformationsquelleAutor Frédéric Hamidi
Ich verbrachte Stunden an diesem problem und bekam schließlich Diese Lösung.
Sie haben nur das überschreiben der
FrameworkInitialize()
stattinitilizeculture()
,eg:
Jus fügen Sie diesen code in Ihrem ascx.cs-Datei, Diese override-Funktion nicht aufgerufen werden müssen.
InformationsquelleAutor SIbghat
Benutzte ich den folgenden code ändern Sie die Sprache für asp.net mvc in meine Projekt-Seite
auch ich verwendet usercontrol (ascx), auf der gleichen Seite.wenn ich die Sprache geändert, die mit actionlink geändert viewpage Sprache, aber der Benutzer hat die Kontrolle pageload-Ereignis nicht erfassen, ändern, so viewpage die Sprache ändert sich aber usercontrol die Sprache nicht ändern
InformationsquelleAutor fatih