Serkan Ayyıldız

Meraklı bir yazılım uzmanı...

ASP.Net CheckBox Kontrolü ve Örnek Uygulama

ASP.Net öğrenmek isteyen web yazılım uzmanı adaylarına merhabalar!

Genellikle sitelere üye olurken ya da internette alışveriş yaparken hatta bilgisayarımıza program yüklerken dünyanın en güzel yalanı "Sözleşmeyi okudum, kabul ediyorum" olan bu koşulu kabul ettiğimizi ifade eden CheckBox (işaret kutusu) kontrolünü yakından tanıyoruz.

Bu kontrol az önce bahsettiğim gibi hem masaüstü uygulamalarda hem de web sitelerinde tıpkı butonlar gibi kullanılmakta ve en büyük amacı herhangi bir konu için kullanıcının onayını istemek için kullanılmaktadır.

Elbette sadece Windows Form ve ASP.Net'e özgü olmamakla birlikte, ASP.Net projesi içerisinde kullanıldığında IIS (Internet Information Services - ASP.Net sitesi yayınlayan uygulama) tarafından HTML elementi olan input type checkbox'a dönüştürülmektedir ki web alanında da checkbox bu şekilde çalışır.

CheckBox'ın ne olduğu, amacı ve kullanım yerlerini öğrendiğimize göre bir ASP.Net Web Forms projesi içerisinde basit bir tasarım yapalım:

aspnet web form



Yukarıdaki tasarımda gördüğünüz gibi birer ASP.Net Label, Button ve CheckBox kullanıldığını görüyoruz.

Kullanıcı sanki siteye üye oluyormuş gibi sözde kullanım şartlarımızı kabul ediyor gibi hareket etsin, bunun için arka tarafta C# kodlarımız ile design sekmesinde butonumuza çift tıklayarak butonumuzun onclick olayı içerisinde CheckBox'ın işaretlenip işaretlenmediğini kontrol edelim:

checkbox ischecked

CheckBox'ın işaretlenip işaretlenmediğini IsChecked property'si ile kontrol ediyoruz; 

CheckBox sınıfının get; set; (okunabilir,yazılabilir) bir üyesi olan bu property'ye kendi tipi olan bool tipinde
bir seçenek te verebiliriz.Bu sayede sayfa açıldığında işaretlenmiş olarak belirtiyor ve kullanıcıyı sözleşmeye kabul etmesini zorluyoruz:

aspnet page load

checkbox check if else

Yukarıda Page Load olayında hiçbir kod yazmasaydık CheckBox kontrolümüzün IsChecked property'sinin false 
olduğunu belirtmekte fayda var.Bu örnekte page load olayında false olan değeri sayfa açıldığında true olarak değiştirerek seçili olmasını sağladık.Eğer Page Load olayı içerisinde herhangi bir kod yazmasaydık
 kullanıcı sayfayı ilk kez açtığında checkbox işaretsiz olacaktı.

Bu kadar basit olan bu ASP.Net kontrolünü tanıdıktan sonra bu kontrolün AutoPostBack property'sini de tanıyalım.

AutoPostBack Nedir?

Bildiğiniz gibi PostBack, kullanıcının web sayfasındaki button gibi bir kontrole tıklamasının ardından web sayfasında ki bilgilerin internet sunucusuna gidip tekrar kullanıcıya dönmesi esnasındaki sayfanın yenilenmesi hareketidir.İşte AutoPostBack, butonun böyle bir işlevi olmaması durumunda butona bu özelliğin zorla kazandırılması işlemidir.

Kısacası: PostBack işlemini tetikleyen mekanizmadır.

Az önceki CheckBox örneğimizde postback durumunun yalnızca butona tıklanması esnasında gerçekleştiğini gördünüz ve sayfanız doğal olarak yenilendi, ancak CheckBox'ı işaretlerken ya da işaretini kaldırdığınızda böyle birşey gerçekleşmedi.Bu da biz butona tıkladığımız anda CheckBox'ın işaretli olup olmadığını sunucuya bildirdik.

Peki CheckBox işaretlendiği anda sunucu, bu kontrolün işaretlendiğini bilse güzel olmaz mı?

Bilse ne bilmese ne! diye derseniz şöyle bir senaryomuz daha olsun:

Kullanıcı, sözleşmeyi kabul ettiğini beyan ettitiğini temsil eden checkbox'ı işaretledikten sonra butonumuz görünür olsun ve butona tıklayınca görünür olsun.
Bu durumda sayfa ilk açıldığında butonumuzun IsVisible property'sini false yapalım:

button isvisible

CheckBox'ımız sayfayı postback edebilsin diye AutoPostBack property'sini true yapalım:

check autopostback

Son olarak CheckBox'ımıza design ekranındayken çift tıklıyoruz ve OnChange olayımıza geçiyoruz, bu olay checkbox'ın her işaret durumu değiştiğinde ne olacağını belirttiğimiz yer olduğu için yeniden if else kullanarak butonumuzu görünür/gizli hale getiriyoruz:

check onchange checked

Butonumuzun click olayındaki if else deyimine artık gerek kalmadı çünkü bu denetimi zaten CheckBox içerisinde gerçekleştirdik.Bir nevi kullanıcı gizli bir butona tıklayamayacağı için buton içerisinde checkbox kontrolü yapmaya gerek yok: buton görünür durumdaysa zaten checkbox işaretlidir. :)

Projemizi çalıştıralım:

check button

aspnet button visible

check button

CheckBox ile ilgili sizlere anlatacaklarım şimdilik bu kadarla sınırlı, ancak AutoPostBack propertysinin diğer ASP.Net kontrollerinde de bulunduğunu ve daha sonra yeniden kullanacağımızı bilmenizi isterim.

Bir sonraki makalemizde görüşmek üzere hoşçakalın, mutlu kalın...




Bir yorum bırak E-posta adresiniz yayınlanmayacaktır.

Menu