ASP.NET IsPostBack Kullanımı – Web Tasarım & Programlama
ASP.NET’ te oluşturmuş olduğumuz kodlar sunucu tarafında çalışmaktadır. Yani oluşturulmuş bir ASP.NET sayfasına istekte bulunulduğu zaman istek sunucuya ulaşır ve sunucuda işlenerek HTML çıktısı olarak istemciye gönderilir. Formumuzda bulunan Button vb. kontrollere tıklandığında sayfa yine sunucuya gönderilecektir ve tekrar işlenmesi sağlanacaktır. İşlemlerin yapılması için sayfanın sunucuya gönderilmesi işlemine postback denilmektedir. Bu durum kimi zaman istenmeyen durumlara yol açtığından kontrol edilmesi gerekmektedir. Yani sayfanın ilk defamı yüklendiği yoksa sunucuya geri mi gönderildiğinin kontrol edilmesi gerekebilir. bu konuyla ilgili aşağıdaki örneği inceleyebilirsiniz. Örneğimizde DropDownList yada Listbox kontrolüne Button‘ a tıklandığında aynı verilerin tekrar eklenmesi gibi sorununun nasıl çözülebileceğini göreceksiniz.
Örneğimizde Formumuza bir adet DropDownList ve 1 adet Button ekleyerek DropDownList içine Form yüklendiğinde 2 tane eleman eklenmesini sağlayalım. Bunun için Page_Load event’ ına aşağıdaki kod satırlarını yazalım.
protected void Page_Load(object sender, EventArgs e)
{
DropDownList1.Items.Add(“www.yazilimkodlama.com”);
DropDownList1.Items.Add(“www.yazilimbilisim.net”);
}
protected void Page_Load(object sender, EventArgs e) { DropDownList1.Items.Add(“www.yazilimkodlama.com”); DropDownList1.Items.Add(“www.yazilimbilisim.net”); }
|
Formumuzu çalıştırdığımızda DropDownList içinde eklediğimiz elemanları göreceğiz.
Yukarıdaki gibi bir kullanımda kullanıcı butona her tıkladığında postback işlemi gerçekleşecektir. Tıklama sonucunda DropDownList içine bu iki eleman tekrar eklenecektir. Butona birkaç defa tıklayarak sonucu görelim.
Görüldüğü gibi eklediğimiz elemanlar butona bastıkça tekrar eklenmekte. Bu sorunu çözmek için sayfanın ilk defa mı yüklendiğini yoksa sunucuya tekrar mı gönderildiğini kontrol etmeliyiz. Bu işlem için Page sınıfına ait IsPostBack özelliğini kullanacağız.
Kodlarımızı aşağıdaki gibi düzenleyelim.
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
DropDownList1.Items.Add(“www.yazilimkodlama.com”);
DropDownList1.Items.Add(“www.yazilimbilisim.net”);
}
}
protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) { DropDownList1.Items.Add(“www.yazilimkodlama.com”); DropDownList1.Items.Add(“www.yazilimbilisim.net”); }
}
|
Burada if içerisine yazdığımız !IsPostBack ifadesi sayfa postback değilse yani sayfa ilk defa çağrılıyorsa anlamını taşımaktadır. Yani sayfa ilk defa çağrıldığında bu kodlar çalışarak DropDownList içine eklem yapılacak ve daha sonraki Button tıklamalarında eklem işlemi yapılmayacak ve elemanların tekrar etmesi engellenecektir.