0

4 つの異なる言語をサポートするアプリケーション (asp.net 3.5) があります。他の文化的な変更に加えて、日付形式はレポート ページの現在の文化と一致する必要があります。

各テキスト ボックスの日付形式を次のように設定します。

string date = DateTime.Today.ToString("d"); //returns the date portion only

textbox1.Text = date;
textbox2.Text = date;

etc...

ユーザーがスペイン語または英国英語を選択した場合、形式は dd/mm/yyyy である必要があります。ただし、mm/dd/yyyy で表示されるページに移動します。ポストバックの後、dd/mm/yyyy が表示されます。別のポストバックの後、mm/dd/yyyy 形式に何度も切り替わります。

これをデバッグしたところ、アプリケーションのカルチャが正しく、日付形式が正しく返されていることがわかりましたが、表示すると正しく表示されません。

誰かがこれを見たことがありますか、または何が起こっているのか知っていますか?

4

1 に答える 1

0

1 つのページだけのカルチャを変更する場合はInitializeCulture、質問の aspx ページをオーバーライドする必要があります。

protected override void InitializeCulture()
{
    // set your culture, or pick it from maybe the Request object
    string selectedLanguage = "en-US"; 
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedLanguage);
    Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedLanguage);
    base.InitializeCulture();
}

アプリ全体のカルチャを設定する場合はApplication_BeginRequest、global.asax で使用します。

void Application_BeginRequest(Object sender, EventArgs e)
{
   string selectedLanguage = "en-US"; 
   Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedLanguage);
   Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedLanguage);
}

もちろん、en-US をユーザーの正しいカルチャに変更します。

于 2010-06-11T19:28:07.893 に答える