Koray Kırdinli

Yazılım ve İş Yaşamı Hakkında Paylaşımlar

Page.UICulture ve Page.Culture

Merhaba arkadaşlar, bu yazıda öncelikle başlıkta belirttiğim iki kavram arasındaki farkı açıklamaya çalışacağım. Page.Culture : kültüre bağlı işlemler için kullanılır. Örneğin tarih,sayılar,parasal formatlar vs. Örneğin Page.Culture’ı Türkçe’ye set ederseniz artık tarih formatı dd/MM/YYYY ve parasal ifadelerin sonuna TL gelir vs.  UICulture ise sayfaya hangi resource dosyası yüklenecek bununla ilgilenir. Örneğin Default.aspx sayfanız için UICulture Türkçe seçilirse Default.aspx.tr-TR.resx resource dosyası sayfaya yüklenecektir.

UICulture ve Culture’ı web.config dosyasından global olarak set edebiliriz.

< globalizationuiculture=”tr”culture=”tr-TR” />

Ya da her sayfada page direktifi ile ayrı ayrı set edilebilir

<% @PageUICulture=”tr”Culture=”tr-TR” %>

Son olarak da bunu kod yazarak set edebiliriz.Ancak burada dikkat etmemiz gereken nokta komutun page life cycle’da uygun yerde çağırılması. Bunun için özelleşen InitializeCulture metodunu override ederek kullanabiliriz. Aşağıdaki örnekte bir dropdownlistte diller listeleniyor ve her değiştiğinde sayfanın da dilinin değişmesini bekliyoruz. Burada dikkat etmemiz gereken diğer bir nokta ise ddlLanguage nesnesine direk SelectedValue diyerek erişemememiz çünkü InitializeCulture metodu page life cycle’da nesneler yaratılmadan önce çağrılıyor ve bizde bu değeri Request.Form collection’ının içinden okuyoruz.

ASPX

CS

protected override void InitializeCulture(){

        if (Request.Form[“ddlLanguage”] != null)
        {
            String selectedLanguage = Request.Form[“ddlLanguage”];
            UICulture = selectedLanguage;
            Culture = selectedLanguage;
            Thread.CurrentThread.CurrentCulture =
                CultureInfo.CreateSpecificCulture(selectedLanguage);
            Thread.CurrentThread.CurrentUICulture = new
                CultureInfo(selectedLanguage);
        }
        base.InitializeCulture();
    }

ASP.NET page life cycle da InitializeCulture metodunun yeri

1.    Construct

2.    ProcessRequest

3.    FrameworkInitialize

4.    InitializeCulture

5.    If child controls are present

1.    AddParsedSubObject

2.    CreateControlCollection

3.    AddedControl

4.    ResolveAdapter

6.    DeterminePostBackMode

7.    OnPreInit

8.    OnInit

9.    TrackViewState

10.  OnInitComplete

11.  OnPreLoad

12.  OnLoad

13.  OnLoadComplete

14.  EnsureChildControls

1.    CreateChildControls

15.  OnPreRender

16.  OnPreRenderComplete

17.  SaveViewState

18.  OnSaveStateComplete

19.  CreateHtmlTextWriter

20.  RenderControl

21.  Render

1.    RenderChildren

2.    VerifyRenderingInServerForm

22.  OnUnload

23.  Dispose

Reklamlar

Kasım 2, 2011 - Posted by | ASP.NET | , , ,

Henüz yorum yapılmamış.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s