2013-08-14 1 views
0

아랍어 용 masterpage에 두 개의 버튼이 있고 영어의 버튼 하나를 클릭하면 세션 [ "Lang"]이 변경됩니다.IsPostBack에서 자식 페이지 코드를 실행하기 전에 마스터 페이지에서 메서드를 실행하는 방법?

지금 chiled 페이지에 나는 아이의 코드가 실행 세션을 변경하려면 버튼을 클릭하면이

protected void Page_Load(object sender, EventArgs e) 
{ 

    if (Session["Lang"] == "en-US") 
    { 
     Label1.Text = "English"; 
    } 
    else 
    { 
     Label1.Text = "Arabic"; 
    } 

먼저 세션을 변경하기 위해 butn 이벤트 페이지를 마스터하고 실행 갈 것이다 쓰기

중 하나가 사전에 아이 페이지 이전

감사를 버튼 이벤트를 호출 할 수있는 아이디어를 가지고

Mohammmed^_^

+0

하위 페이지 자체 [ "Lang"] 업데이트 방법은 어떻습니까? – vendettamit

+0

버튼은 masterpage를 기반으로합니다 ... 동일한 버튼을 사용하여 자식으로부터 세션 [ "lang"]을 변경하는 방법 – Mohamme5d

답변

0

가 나는 경우 대상 (버튼의 ID를)있어이 방법이 방법

protected override void InitializeCulture() 
{ 
} 

을 사용할 수 있습니다 세션은 프리스트를 바꾼 다음 페이지를로드 한 다음 마스터 페이지를로드합니다.

1

상황을 이해하려면 ASP.NET Webforms 페이지 수명주기를 살펴 봐야합니다. "http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx#lifecycle_events

다음은 순간에이 문제를 버튼 클릭 이벤트가 Page_Load 이벤트 이후에 발생한다는 것입니다, 그래서 당신은 버튼을 클릭 할 때 당신은 아마 Label1.Text 한 번의 클릭입니다 경험 : 여기

는 대한 몇 가지 문서입니다 뒤에".

예를 들어 Label1.Text 할당을 PreRender에 배치하십시오.

@ArabicProgrammer와 마찬가지로, 실제로 .NET Framework에서 사용할 수있는 Culture 지원을 실제로 사용하는 것이 좋습니다. 이 방법을 대신 사용하면 다음과 같은 방법으로 언어를 표시 할 수 있습니다.

<%= System.Threading.Thread.CurrentThread.CurrentCulture.DisplayName %> 

Label 컨트롤을 사용하는 대신.

1

InitializeCulture는 페이지가로드되기 전에 실행되며, 페이지의 문화권을 변경하고 실행 후 마스터 페이지에서 기본 페이지로 리디렉션해야합니다.

당신은 그래서

 protected override void InitializeCulture() 
{ 
    string language = Request["__EventTarget"]; 
if (!string.IsNullOrEmpty(language)) 
     { 
      if (language.EndsWith("Ar")) 
      { 
       languageId = "ar-SA"; 
      } 
      else if (language.EndsWith("En")) 
      { 
       languageId = "en-US"; 
      } 
     } 

ussing이

protected override void InitializeCulture() 
    { 
     Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Session["Lang"].ToString()); 
     Thread.CurrentThread.CurrentUICulture = new CultureInfo(Session["Lang"].ToString()); 
     base.InitializeCulture(); 
    } 
+0

고마워요. 아랍어 프로그래머입니다. 나는 동일한 진영과 다른 논리를 사용합니다. – Mohamme5d