initializeCulture von Seiten feuert, bevor der selectedIndexChange der dropdownlist in masterPage

Ich habe eine masterpage mit einem language-selector-Steuerelement dropdownlist

es hat mehrere Unterseiten, die über die masterpage aber in den Unterseiten (ich erstellte eine basePage-Klasse, die ich dann lassen Sie die Seiten Erben von) ich überschreiben Sie die initializeCulture.
wie diese:

protected override void InitializeCulture()
        {
            String selectedLanguage = Common.SessionManager.Language;

            if (selectedLanguage == "")
            {
                selectedLanguage = ConfigurationManager.AppSettings.Get("defaultLanguage");
            }

            if (selectedLanguage == "")
            {
                selectedLanguage = "nl-BE";
            }

            UICulture = selectedLanguage;
            Culture = selectedLanguage;
            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedLanguage);
            Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedLanguage);

            base.InitializeCulture();
        }

auf das SelectedIndexChanged-Ereignis des dropdownlist, habe ich die neue Sprache in der session
wie diese:

    protected void LanguageSelectorSelectedIndexChanged(object sender, EventArgs e)
    {
        string sCulture = LanguageSelector.SelectedValue;
        Common.SessionManager.Language = sCulture;
    }

aber die initializeCulture hat dann schon gefeuert worden.

so habe ich eine Art delay-Effekt laden der Seite werden mit der vorherigen Sprache und auf das nächste postback seine korrekt übersetzt.

ich kann nicht rufen Sie die initializeCulture wieder, weil ich bin auf einer masterpage, und ich habe keinen Zugriff auf die Unterseite der basePage-Klasse.

hat jemand eine Idee, wie man gegen dieses Problem?

InformationsquelleAutor Sander | 2011-02-17
Schreibe einen Kommentar