yükleniyor..
 
 
Diğer Asp.Net ViewState

ViewState

"Asp.Net" ile ilgili 0 yazı bulundu.

ViewState, sayfanın post back olması durumunda sayfadaki verilerin saklanmasını sağlar.Yani sayfa post olduğunda verilerimizi code-behind kısmında kullanabilmemizi ve geri dönüşte sayfamızın verilerimiz ile dolmasını sağlar.

Sayfa ziyaretlerinde tüm kontrollerle ilgili değerler, Base64 olarak kodlanmış tek bir string halinde ViewState isimli bir gizli input kontrolünde tutulur. Page class tüm kontroller için oluşturulmuş ViewState'leri tutar.

Bir web sitesi oluşturup sayfada hiçbir değişiklik yapmadan debug edip, kaynak kodunu incelediğimizde aşağıdaki gizli kontrolü göreceğiz.

<input name="__VIEWSTATE" id="__VIEWSTATE" type="hidden" value="/wEPDwULLTE2MTY2ODcyMjlkZJokkqtwOJKgcPKUu3Vms+YxCo6iPYCiKiMPoGGHSkcu"/>

ListBox gibi bir kontrol için kendimiz ViewState oluşturmak istersek ; ViewState.Add("1", "cagatay"); //şeklinde ViewState oluşturabiliriz. Hashtable gibi bir "Key" ve birde "Value" değeri alır.

ListBox1.Items.Clear(); // ViewState üzerinden ListBox1 kontrolüne ait nesneleri kaldırıyoruz.

// ViewState üzerindeki StateItem nesnelerini ListBox1 kontrolüne ekliyoruz.

foreach (StateItem si in ViewState.Values)

{

ListBox1.Items.Add(si.Value.ToString());

}

Bizim girdiğimiz StateItem nesneleri ile otomatik oluşturulmuş StateItem nesneleri ViewState içerisinde ayrı ayrı saklanır. ViewState'te sadece kendi oluşturduğumuz "Key" değeri ile verilere ulaşabiliriz.

ViewState ise aynı "Key" değeri olduğu durumlarda en son ekleneni alır.

Kullandığımız kontrollere EnableViewState="false" özelliğini katarak kontrol bazlı ViewState'i kapatabiliriz.

Sayfa bazında ViewState'i kapatmak için;

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" EnableViewState="false" %>

Tüm sitede ViewState'i kapatmak için;

<system.web>
<pages enableViewState="false"></pages>
ViewState web.config'den bile kaldırılsa, gizli input kontrolümüz sayfadan kaldırılamaz.
ViewState ile integer bir değeri tutmak istersek aşağıdaki gibi bir yapı kullanabiliriz.


Site içinde ara
Son yazılar
Tavsiye edilenler