ViewState Hakkında bir kaç soru ile başlayalıp kafamızda canlanmasına yardımcı olalım.

SORU : Viewstate ne saklar?

CEVAP : Sayfanın durum bilgisini saklar?

SORU : Nasıl yani?

CEVAP : Markup’ta tanımlanan kontrollerin, render sonraki durumlarıyla, markuptaki durumları arasındaki farklılıkları saklar.

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class _Default : System.Web.UI.Page 
{
    public _Default()
    {
        //Kontroller henüz oluşturulmadı...Bu yüzden dolayı Hata ile karşılanacaktır. 
       // int sayi = drpIlce.Items.Count;  
    }

    protected void Page_PreInit(object sender, EventArgs e)
    {
        int sayi = drpIlce.Items.Count;  
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            drpIlce.Items.Add("Eyüp");
            drpIlce.Items.Add("Fatih");
            drpIlce.Items.Add("Üsküdar");
        }
    }
    protected void btnEkle_Click(object sender, EventArgs e)
    {
        drpIlce.Items.Add(TextBox1.Text);

  
    }
}

SORU : TextBox’ın Text bilgisi neden viewstate’de saklanmıyor?

CEVAP : İstemci formu post ettiğinde, TextBox’ın Text bilgisi post ediliyor..

SORU : TextBox’ın Text bilgisi neden viewstate’de saklanmıyor?

CEVAP : İstemci formu post ettiğinde, TextBox’ın Text bilgisi post ediliyor..

SORU : Peki neden TextBox’ın BackColor bilgisi post edilemiyor?

CEVAP : Çünkü herbir kontrol bir tane string post edebilir. Bu yüzden TextBox, sadece Text bilgisini post eder…

SORU : TextBox’ın Backcolor’ını markupta Mavi yaparsak, bu bilgi ViewState’de yer alırmı?

CEVAP : Almaz, çünkü TextBox oluşurken mavi oluşacaktır..Durum değişmemiştir..