Asp.Net PostBack Kavramı
 

Asp.Net  yeni baslangiç yapiyorsaniz . PostBack kavramini mutlaka ögrenmelisiniz. Zira bu kavram Asp.Net çalisma mantigini anlamada büyük derecede yardimci olacaktir . Peki PostBack nedir   Client(Istemci)  bilgisayarda yapilan bir istek  ile sunucuda  bu istegin  yerine getirilmesi  istemci bilgisayara yansitilmasi PostBack'dir. Daha açik sekilde . Web sayfamizda  bir form doldurdugumuzu düsünelim .Formdaki verilerin   sunucuya gidip veritabanina eklenmesi gerekir. Bu sekilde sunucuya bir gidis ve daha sonra  client'e yansimasi var ise sayfa postback olmus demektir.


Peki Bu Kavrami bilmek  nerelerde isimize yaracaktir ?

Hemen bir örnek üzerinden gidleim

Yeni bir  aspx sayfasi olusturalim .

Sayfamiza DropDownList atalaim . DropDownList 'e  elemanlarini  sayfanin  source kisminda  add item diyerek eklemeyelim . Code tarafindan ekleyelim .

Birde buton atalim sayfamiza .  Fakat buton_click eventini  olusturmayalim simdilik .Sayfamizi çalistiralim .

 

Görüntümüz bir üstteki gibi oalcaktir.

Butonu her tikladigimda  ayni 5 item tekrar yükleniyor . Ne oluyor sayfa butona tiklayarak  postback ediyorum  her post back edisimde sayfanin page_load kismindan baslayarak yeniden çalistiriliyor.

Dönüyorum  projeye  button'a çift tiklayip buton_click event'ini ekliyorum .
Sayfaya bir Breakpoint  atip    Asp.Net sayfayi  çalistirma mantigini izleyelim

 

Tekrar projeyi çalistiriyorum   .Butona her bastigimda   sayfa postback oluyor  mantigimiza göre  üst kisim isletilmeyecek   direk button_click event'i isletilecek derdik ama asp.net böyle degildir. Buton_click  event 'i olsa bile sayfa postback edilince ne olursa olsun page_load  kismi  basindan itibaren kodlari isletilir. Iste burasi  çok önemlidir. (Tabi burada asp.net su bilgisi de önemli asp.net kontrolleri sunucuya gidis gelislerde üzerlerindeki degeri  koruduklari önemli bir bilgidir.)
 

Çözüm yöntemleri

1. Asp.net kontrolleri sunucuya gidis gelislerde üzerlerindeki degeri koruyor dedik .Bunu  istedigimiz  kontrolün properties'ine gelip ,

 

Bir üst sekilde gibi  yani ,

EnableViewState true'dir varsayilan olarak .  False yaparsak sunucuya gidis gelislerde üzerlerindeki degeri korumaz yine herseferinde page_load çalisir eklenir ama sunucuya giderken üzerindeki degeri kaybedeceginden    hep 5 kayit  olacaktir . DropDownList ' te.

(Bazi kontrollerde geçerli degil bu özellik . Örn textboxda false yapsanda sunucuya gidis gelislerde degerini korur.)

 

SIMDI BIZIM  YAPMAK ISTEDIGIMIZ VE KONUMUZUN AÇILIS AMACI OLAN POSTBACK KAVRAMI ILE ÇÖZELIM BU SORUNU VE AYNI ZAMANDA POSTBACK KAVRAMINIDA ANLAMIS OLACAGIZ BU ÖRNEK IL

 

2.Yöntem PostBack Kavrami ile Çözüm

 

Söyle bir   kod yazdiracagiz   sayfa ilk kez yüklendiginde page_load daki kodlari çalistir  yüklensin dropdownlist ' e     ,  Sayfa geldikten sonra sunucuya istek gönderirsem dolmasin  . Asp.net te bu istekleri anlayan bir özellik var.

Bu özelligin adi IsPostBack ' dir. Geriye boolean döndürmektedir. Sayfanin ilk yüklenmesi postback degildir. Sayfa geldikten sonraki sunucuda  istedigin her istek  postback'dir.

this.IsPostBack veya Page.IsPostBack yada yalnizca IsPostBack diye  3 farkli sekildede yazabiliriz. Ayni   islevdedir 3 üde.

 

Brir üstte  resimde kod olarak belirttik
 

Kodun açiklmasi , Post edilmemisse    içindekileri çalistirir. Ondan sonra butona tikladik bir istek yolladik artik postback  true'dur . True oldugundan  o kod blogu çalismayacaktir.

 

Tarayicida Refresh yaparsak   Sayfayi ilk kez açmis gibi olmaz.  Tarayicilar Refresh yaparken  su mantikla çalisir Refresh yapmadan bir önce  sayfadnin post back 'i neyse odur . 

Örnegin postback   true  ide refresh yaptik yine truedir. Çünkü refresh yapmadan bir önceki   postback true idi.

 

ÇOK ÖNEMLI  LINK  FARKI

AYNI SAYFADA BUTONUN ARDINDAN BIRDE

<a href="default.aspx"></a>  tiklanilinca yine kendi sayfasina     getiren bir  link yaptik . Bu linke her tiklanildiginda   siteye ilk kez istek yapmis gibi olur    postback tiklanmadan önce true   diyelim tikladiktan sonra  false dur..

<a>   tagi demek yeni bir istek demektir.

 

Author: Engin Atalay
Date: 20.06.2012 18:24:34
View Count: 23912
 
 

COMMENTS
 
Resim Yüklenemedi
YEMIFK68PUKD diejest www.mail.ru
11 Eylül 2023 11:23
YEMIFK68PUKD diejest www.mail.ru
 
 
 
 
 
Resim Yüklenemedi
harun
1 Ağustos 2017 22:56
asp.nette form1 de yapilan sayisal hesaplamayi nasil form2 deki labellere yazdiriz
 
 
 
 
 
Resim Yüklenemedi
Tülin
11 Nisan 2016 14:15
Tesekkür ederim, mantigi bir türlü kafamda yer edememisti. Çok açiklayici oldu.
 
 
 
 
 
Resim Yüklenemedi
Fatih
16 Aralık 2015 13:22
Tesekkürler. Çok güzel bir makale olmus
 
 
 
 
 
Resim Yüklenemedi
serdar
12 Mart 2015 00:33
Tesekkür Ederiz Yararli Bir makale olmus
 
 
 
 
 
Resim Yüklenemedi
Zafer
5 Eylül 2014 11:32
Tebrikler.Cok guzel bir makale olmus..Insanin postback kavramini unutup unutup tekrar okuyasi geliyor ;)
 
 
 
 
 
Resim Yüklenemedi
ugur
1 Ağustos 2014 16:10
güzel bir anlatim
 
 
 
 
 
Resim Yüklenemedi
gökhan
3 Haziran 2014 12:05
bilgi için tesekkürler.
 
 
 
 
 
Resim Yüklenemedi
tuna
23 Mayıs 2014 16:10
anladigin seyi güzel bir sekilde anlatmissin. bravo. faydali bi makale
 
 
 
 
 
Resim Yüklenemedi
Ender
15 Mayıs 2014 16:11
Denk geldim isime yaradi tesekkürler...
 
 
 
 
 
 
 
 
 
 
 
 
WRITE COMMENT
 
 
Your Name :
 
 
 
E-mail :
 
 
 
Your Message :
 
 
 
 
 
 
 
This project : ASP.NET MVC , RAZOR, Entity Framework , CSS , HTML , JQUERY(2.0.2) , AJAX the C# side-tier architecture was developed with logic.
 
Yukarı Çık