Asp.Net ViewState nedir nasıl kullanılır?

Asp.Net ViewState nedir nasıl kullanılır?

Merhaba arkadaşlar, bugün ViewState ‘ in ne olduğuna ve nasıl kullanıldığına bakacağız.
Öncelikle ViewState nedir ile başlayalım
Asp ve php uygulamaları geliştirirken eskiden sayfa postback olduğunda veriler hafızadan gidiyordu. Bu verileri hafızada tutmak için tabiri caiz ise taklalar atmak gerekiyordu. Asp.Net de Yazılımcıların bu zorluğunu düşünerek ViewState özelliğini getirmiştir.
ViewState asp.net te form düzeyinde veri saklamaya yarar. Aslında kullanımını anlatacak pekte birşey yok. Çünkü nesnelerin properties leri içerisinde bulunuyor.

Şimdi basit bir örnek yapalım. Sayfamıza iki adet label koyalım birinin ViewState özelliğini TRUE yapalım diğerinin ise ViewState özelliğini FALSE  yapalımŞimdi herşeyi daha iyi anlayacaksınız.

 

viewState
viewState

Şimdi yukarıdaki resimdeki gibi bir tasarım oluşturalım ve ; Yazıları güncelle butonunun altına aşağıdaki kodları yazalım.

viewState3
viewState3

İlk Label in ViewState özelliğini FALSE yapalım. İkinci Label in ise ViewState özelliğini TRUE olarak güncelleyelim. Textlerini de aşağıdaki şekilde güncelleyelim.

viewStateKullanimi
viewStateKullanimi

Şimdi yukarıdaki tasarımı oluşturduktan sonra , Yazıları Güncelle butonuna basalım. Yukarıdaki ekran görüntüsünü elde edeceğiz.

Şimdi Post-Back butonuna bastığımızda sayfa postBack olacak ve ViewState özelliği kapalı olan label‘ in text i “Label” olarak güncellenecek. ViewState özelliği açık olan label ‘in ise texti normal olarak kalacaktır.

viewState4
viewState4

Yukarıdaki resim zaten herşeyi açıklıyor. Bir nesnenin özelliklerinin postback olduktan sonra kayıp olmasını istemiyorsanız , yani bilgilerin arkaplanda cachelenerek geri yüklenmesini istiyorsanız ViewState özelliğini true olarak ayarlamalısınız.

Bunu nerede kullanabiliriz derseniz? Benim aklıma bankadaki 3D security sayfaları geliyor. sayfa postback olduğunda bütün bilgiler güvenlik dolayısı ile uçuyor.  Umarım anlatabilmişimdir. Aklınıza takılan bir sorun olursa yorum bölümünden sorularınızı iletebilirsiniz.