ASP.NET ile Kullanıcı Kayıt Formu Tasarımı ve Kontroller

Formları oluştururken şüphesiz en büyük sıkıntı, istediğimiz bilgilerin istediğimiz şekilde doldurulması olayıdır. Bu olaya “Geçerlilik Denetimi” (Validation) denilmektedir. ASP.NET de bu iş için bizlere sunulmuş validation nesnelerimiz bulunuyor. Genellikle e-posta, telefon numarası, kredi kartı numarası,web adresi ve tarih gibi belli bir formatı olan bilgileri alırken egularExpressionValidator adındaki nesne sayesinde çok rahat bir biçimde bu kontrolleri sağlıyabiliyoruz. Bu adreste istemediğiniz kadar regularexpressionvalidator için kullanabileceğiniz formül bulunuyor. Eğer bir alanın zorunlu doldurulmasını istiyorsak RequiredFieldValidator tam bize göre :) Yazılan şifrelerin eşit olup olmadığını yada yazılan e-posta adreslerinin eşit olup olmadığını ise CompareValidator nesnesiyle yapabiliyorsunuz.

asp.net form kontrol

Güvenilirlik konusuna gelince, validation kontrolleri sadece tasarım kısmında değil kod kısmındada işini yapıyor. Yani birdaha kod kısmında eğer bu buna eşit değilse geri dön felan filan gibi kontrollere ihtiyacınız olmuyor.

Validation nesnelerinde;

ControlToValidate=”kontrol edilmesini istediğimiz alanın ID si”

ErrorMessage=”Adı üstünde hata olunca görünecek hata”

Display=”Dynamic” Bu özellik varsayılan olarak gelmiyor yani None, eğer Dynamic yaparsak; yan yana birden fazla kontrol kullandığımızda örneğin; 2. hatanın belirdiğinde 1. hata aktif değilse, 1. hatanın olduğu yerde 2. hatanın görünmesini isteriz. Bu nun için bu özelliği kullanıyoruz. Kaynak kodlarını inceledğimizde, Dynamic olduğunda display:none, diğer durumda visibility:hidden oluyor. Eğer deneme yaparsanız demek istediğimi daha iyi anlayacaksınız.

InitialValue=”vasayılan değer” Bu şu demek örneğin bir drop down listiniz var ve bunun ilk elemanı Seçiniz, bu Seçiniz elemanın varsayılan değeride Seçiniz dir. Yani her halükarda bir değer geri döner, kullanıcı hiç birşeyi seçmese bile hata olarak geri bir dönüş olmaz. initialvalue=”Seçiniz” diyerek bunu engelleyebiliriz.

Kodları verip burayı bulandırmak istemedim, buradan hazır yapılmışını indirebilir ve konuyu çok daha iyi anlayabilirsiniz. Elimden geldiğince olabilecek varyasyonları gerçekleştirmeye çalıştım.

Düzeltme; yukarda indirdiğiniz örneği yanlış eklemişim, 100 ün üzerinde okunmasına rağmen nasıl kimse farkedip bişiy yazmadı şaşırdım açıkcası. Adres güncellenmiştir, ilgilenen arkadaşlara duyurulur.

  • HeadDawn

    Güzel örnekleme. Emeğine sağlık.

  • http://www.evindir.com%20/%20www.orcunokan.com Orçun OKAN

    Yararlı bir paylaşım olduğu kanısındayım. İyi çalışmalar, kolay gelsin.

  • http://w apoStyLEE

    Teşekkür ederim arkadaşlar.

  • Haydar | SitilSoFT

    Gayet güzel hazırlanmış bir form..teşekkürler

  • http://www.kaosbilisim.com osmanali

    Teşşekürler..Dünkü Derste Görmüştük..Bilge Adam da Okuyorum bende…Kolay gelsin

  • EMRAH ALTIOK

    Gayet Güzel Çalışma Ellerine SAğlık

  • http://Websitesi jakom

    merhabalar.. bilgilendirmenize dayanarak buradan sorumu sorayım dedim..
    öncelikle yazı bilgilendirici olmuş elinize sağlık.. fakat şöyle bir sorum olacaktı:
    sayfada kullanıcı resmi alıyorum ve bunu da göstermek için yükle diye bir buton koydum, bu butona basılınca resim sayfada gösteriliyor. ayrıca kaydet butonu da var bu bütün sayfadaki bilgileri kaydediyor. sorunum şu ki yükle butonuna bastığımda validatorlerin sağlanmış olması gerekiyor yoksa yüklemiyor fotoğrafı. halbuki sadece kaydet butonunda bunu kontrol etmesi lazım.

    • apoStyLEE

      Merhabalar, teşekkür ederim. İstediğiniz olay için doğrulama kontrollerini ve diğer kontrolleri gruplamalısınız. Örneğin gibi..

  • http://Websitesi meryem

    merhabalar,
    benim soracağım jquery ile alakalı birşey. bildiğiniz gibi asp.net kendine ait maskedtextbox yok. bununla ilgili ajax anlatımları falan var ama ben işimi jquery ile halletmek istiyorum. ama benim projem masterpageli bir proje olduğu için javascript kodlarında sorun çıkarıyor. ben input kulanayım dedim. bu sefer veritabanında sorun çıkıyor. ne yapacağımı şaşırdım. bu konuda bilgilendirirseniz beni çok sevineceğim.. kolay gelsin..

    • apoStyLEE

      Merhaba, masterpage javascriptin çalışmasına engenl olan bir durum değildir. Muhtemelen siz controllerin id lerinden kaynaklanan bir sorun yaşıyorsunuz. Örneğin bir textboxa ID=”txtTest” şeklinde bir id verirseniz yorumlandığında ctl00_ContentPlaceHolder1_txtTest şeklinde bir id oluşur. Bunu sayfanızın html çıktısından görebilirsiniz. Siz javascript yada jquery kullanırken bu id lerle çalışmak durumundasınız. Ya direk kaynak kodundan bakarak id yi kullanmanız gerekir yada şeklinde oluşan id yi bulabilirsiniz. Maskeleme için http://digitalbush.com/projects/masked-input-plugin/ bu eklentiyi kullanabilirsiniz. Eğer anlaşılmayan bir durum olursa konuyla ilgili küçük bir yazı yazabilirim. Teşekkürler.

  • http://Websitesi meryem

    öncelikle mesajıma cevap verdiğiniz için teşekkürler.. ben sizin gönderdiğiniz sitede ki örneği daha önce kullandım. ve şimdi onun üzerinde çalışmaya devam ediyorum.. aspx sayfasını web formdan açınca herhangi bir sorun yaşanmıyor gayet rahat çalışıyor. ama masterpage sayfamdaki web content formumda ki textboxla ilişkilendirmeye çalıştım programı debug yaptığımda maskeleme özelliğni algılamadığını gördüm. id için ise aynı bu verdiğiniz internet sayfasındaki gibi textboxların id’sini date,phone… olarak değiştirdim.. kodları neden algılamadığını anlamadım. eğer id’de sorun olmuş olsa normal web formunda id kabul ederken web content form sayfamda neden sorun oluşturyor anlayamadım.. tekrardan ilginiz için teşekkürler.. yardımcı olabilirseniz çok sevineceğim.. iyi çalışmalar..

    • apoStyLEE

      Tekrar merhaba, isterseniz şöyle bir şey yapalım, ben gün içerisinde konuyla ilgili bir yazı yazayım, örnek olarak da sizin bu maskeleme olayını kullanayım. Yine problem devam ederse ki etmesi mümkün değil başka bir şekilde çaresine bakarız ;)

  • http://Websitesi meryem

    tamam.. yapacağınız çalışmayı master pageli bir sayfada gerçekleştirirseniz en azından bende hatamın nerde olduğunu görürüm..hem bu konuda muzdarip olan kişiler yararlanır hem de ben.. tekrardan teşekkürler kolay gelsin.. :)

  • Emre

    Ama İndiremiyourz sorun var..

  • http://www.kadertuten.com Kader

    Evet İndiremiyorum ve bu ödevimin yarın yetişmesi gerekiyor yardımcı olursanız sevinirim