C# IsPostBack Nedir?

Doğuhan Aydeniz tarafından yayınlanmıştır 30. Ekim 2009 06:06

Postback Nedir?
Sitenin, içerisindeki form öğeleri tarafından refresh edilmesi olayına Postback denir.

Postback Nasıl Kontrol Edilir?
Sayfanızın Postback olup olmadığını Page sınıfına bağlı Page.IsPostBack property (özellik)'sini kullanarak öğrenebilirsiniz. Bu özellik boolean değer tutmaktadır.

Ne İçin Kullanılır?
Mesela sayfanızda ID'si ddlSehir olan ve şehirleri listeleyen bir DropDownList olsun. Sayfanızın Page_Load event'ında bu DropDownList'e verileri bağlayalım.

protected void Page_Load(object sender, EventArgs e)
{
    
if (Page.IsPostBack == false) 
    {

        //Hazr Data Oluturuluyor.

        DataTable dt = new DataTable();
        dt.Columns.Add("Id");dt.Columns.Add(
"Name");
        DataRow dr = dt.NewRow();
        dr[
"Id"] = "34";
       
dr["Name"] = "İstanbul";
        dt.Rows.Add(dr);
        dr["Id"] = "35";
        dr[
"Name"] = "İzmir";
        dt.Rows.Add(dr);

        //Veri DropDownList'e atanyor.

        ddlSehir.DataSource = dt;
        ddlSehir.DataTextField = "Name";
       
ddlSehir.DataValueField = "Id";
        ddlSehir.DataBind();
    }
}



Bu sayfanın amacı kullanıcıların hangi şehirli olduğunu öğrenmemize yarayan bir sayfa olsun mesela, DropDown'dan da bizim bastığımız şehir verilerinden birini seçip Gönder butonuna tıkladığı zaman DB'ye kaydetsin falan v.s.

Şimdi senaryomuzu kurduk. Yukarıdaki kodlarda Page_Load event'ında yani sayfa her çağırıldığında yüklenirken ki çalışacak event'da ddlSehir dropdownlist'e şehir verilerini basan bir kod yazdık. Ama şöyle bir durum var sayfa her yüklendiğinde bu kodlar çalışacağı için gönder butonuna basıldığı zaman yine Page_Load event metodu çalışacak ve DropDownList'e bu verileri yeniden basacak.

Bu durumda kullanıcının seçtiği veride kaybolacak ve google'a girip DrowDownList.SelectedValue seçtiğim değeri getirmiyor veya hep aynı sonucu döndürüyor diye aramaya başlayacaksınız :)

İşte bunun sebebi IsPostback kontrolü yapmamanız olacaktır. Benim yukarıdaki yazdığım kod doğru olanıdır.

if (Page.IsPostBack == false)
{
   ...
}

şartı şu anlama gelmektedir "Sayfa Yenilenmediyse - İlk kez çalışıyorsa" kodları çalıştır.

17 kişi tarafından 4.4 olarak değerlendirildi

  • Currently 4,352941/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler: ,

ASP.Net | C#



Bu site BlogEngine.NET 1.4.5.0 ile oluşturulmuştur. Türkçe çevirisi BlogEngine TR ekibi tarafından yapılmıştır.