2010-06-11 4 views
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/dd/yyyy로 표시되는 페이지로 이동합니다. 다시 게시 후 dd/mm/yyyy를 표시합니다. 다른 포스트 백이 지나면 mm/dd/yyyy 형식으로 전환됩니다.

나는 이것을 통해 디버깅을했는데 문화권이 응용 프로그램에 적합하고 날짜 형식이 올바르게 반환된다는 것을 알았지 만 표시되면 잘못 표시됩니다.

본 사람이나 본 사람이 있습니까? 당신이 한 페이지에 대한 문화를 변경하는 경우

+0

"dd/mm/yyyy"형식을 4 번 인용하여 전환이 ... 정확한 세부 정보를 확인할 수 있습니까? 사실이 없으면 문제를 진단하기가 어렵습니다. –

+0

대신에 mm/dd/yyyy를 몇 번 입력해야합니다. –

+0

죄송합니다 ... 어떻게 그랬는지 모르겠습니다. 지금은 더 좋아야합니다. 나 자신보다 앞서 태드를 얻었다 ... – AWinters

답변

0

당신은 질문에 영문 페이지에 대한 InitializeCulture를 오버라이드 (override) :

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(); 
} 

를 사용하면, 전체 앱의 문화를 설정의 Global.asax에 Application_BeginRequest을 사용합니다.

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를 변경해야합니다.

관련 문제