MasterPage kullanımda kontrollerin ID mevzusu

Asp.Net de sayfamıza eklediğimiz her kontrolün bir id si bulunuyor. Javascript ile kontrollerimize erişmek istediğimizde bu id leri direk kullanabiliyoruz. Eğer masterpage kullanırsak işler biraz değişiyor. Sayfamız masterpage den türediği zaman kontrollerin idlerine bir ön ek geliyor. Bunu kod tarafında göremesekte sayfa yorumlandıktan sonra kaynak kodlarına baktığımızda id lerin değiştiğini görüyoruz. Haliyle jquery ile ilgili id deki elemanı seçmemiz için kod tarafında ki id değil, kullanıcı (client) tarafında ki id yi kullanmamız gerekiyor. Bu durumda İki şekilde problemimizi çözebiliyoruz. Birinci çözüm yolu kontrollerin ClientID özelliğini kullanmak. <%=kontrol.ClientID%> dediğimizde geriye dönen id bizim kontrolümüzün sayfa yorumlandıktan sonra oluşan değerdir. Fakat bu yöntemi .js sayfamızda kullanmamız söz konusu değil bu sebepten direk .js içerisine html de oluşan id yi yazarak kullanabiliyoruz. Şöylede bir durum var hiç uğraşmadan kontrollerimize class atayıp yukarıdaki olaylara bulaşmadan direk class adını yazarak seçip istediğimiz işlemleri aynen yapabiliriz. Burada ki tek nüans id yakalama performansı class a göre daha iyi fakat bunu küçük işlerde görmemiz çok zor ;) Neyse umarım konu anlaşılmıştır. Aşağıda bir örnek  bulunuyor, dilerseniz çalışan halini buradan indirebilirsiniz.

    <script type="text/javascript">
        jQuery(function($) {
            $("#<%=date.ClientID %>").mask("99/99/9999");
            $("#<%=phone.ClientID %>").mask("(999) 999-9999");
            $("#ctl00_ContentPlaceHolder1_tin").mask("99-9999999");
            $("#ctl00_ContentPlaceHolder1_ssn").mask("999-99-9999");
        });
    </script>

Asp.net ile çok dilli uygulama geliştirme.

Günümüzde çoklu dil (multi language) giderek önem kazanıyor. Bunun en büyük sebebi, projelerin artık ülke bazlı düşünülmüyor olması. Eskiden 2 dil bile fazla gelirken şimdilerde kullanıcı eğilimine göre bu sayı artabiliyor. Çoklu dil yapısı için bir sürü yöntem bulunuyor. Örneğin; xml, veritabanı, resource kullanmak vb.. Biz bu yazımızda resource ile çoklu dilli uygulama nasıl geliştirilir buna bakacağız.

Öncelikle mevcut bir sayfamızı kolay bir şekilde nasıl çoklu dile çeviririz buna bakacağız. Ben örnek olarak küçük bir form hazırladım.

Formumuz da textbox, dropdownlist, label, button ve validator kontrollerimiz bulunuyor. Eğer elle bu forma daha doğrusu sayfaya girişip tek tek elle değişkenleri tanımlamaya kalkarsak epey bir zamanımızı alır. Visual studio geliştiricileride böyle düşünmüşler ki bizi yormamak için Tools menüsünün altına Generate Local Resource özelliğini koymuşlar. Unutmadan bu menü sadece tasarım kısmındayken çıkıyor. Buraya tıkladığımızda bizim yerimize resource dosyası oluşturuluyor ve gerekli değişiklikler sayfamızda yapılıyor. Kaynak dosyamız App_LocalResources klasörünün altında sayfaAdi.aspx.resx şeklinde bulunuyor. Okumaya devam et Asp.net ile çok dilli uygulama geliştirme.

Asp.Net Kontrolleri Bölüm 1

Bu yazımda label, literal, textbox ve button kontrollerini (control) anlatmaya çalışacağım. Bu yazı dizisinde ki amacım yeni başlayan arkadaşlara yardımcı olabilmek, akıllarına takılan noktalarıda sorarak öğrenmelerini sağlamak. Kontrollerin anlatağım özellikleri en çok kullanılan özellikleridir. Lafı daha da uzatmadan başlayalım.

Microsoft Asp.Net ile birlikte web form adını verdiği yeni bir çalışma mantığıyla, alışıla gelmiş web geliştirme yöntemlerinin dışına çıktı. Web form ilk başlarda alışılması zor fakat alıştıktan sonrada kullanması çok kolay bir yapıdır. Kabaca şöyle çalışır, kontrollerimizin hepsi runat=”server” etiketli bir form un (<form runat=”server” ID=”form1″>kontrollerimiz burada</form>) içerisinde yer alır. Kontrollerimiz üzerinde de runat=”server” ifadesi geçmelidir. Sayfa üzerinde bir butona yada linke tıklandığında sayfa olduğu gibi post edilir framework tarafından işlenir ve geri döner. Bu işlemede PostBack diyoruz. Verilerde ViewState denilen bir meknızmayla taşınır. Bu sebepten dolayı klasik asp den yada diğer dinamik dillerden asp.net e geçmek sizi biraz zorlayabilir. Bu mekanızmanın avantajları ve dezavantajları bulunmaktadır. Bu konulara girmek istemiyorum çünkü konumuzdan epeyce uzaklaşmış oluruz. Bu ön bilgiden sonra ilk nesnemizden başlayalım. Okumaya devam et Asp.Net Kontrolleri Bölüm 1

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.