Kullanıcı kontrollerinin tanıtımsal yazım kuralları, ASP.NET web sayfası hazırlarken kullandığımız yazım kurallarına çok benzerler. Ana fark @ Page direktifi yerine @ Control komutu kullanması ve kullanıcı kontrollerinin içeriğinide html,form ve body elementlerinin olmayışıdır.
Bir Kullanıcı Kontrolü Oluşturmak İçin
1. Yeni bir dosya oluşturun ve uzantısını .ascx olarak kaydedin. Ya da daha kolayı VWD 2005 Express Edition içerisinden oluşturduğunuz yeni web sayfasına yeni bir öğe ekleyin ve diyalog kutusundan “Web User Controls” seçerek bir isim verin.
Not: Kullanıcı kontrollerini web sitenizin App_Code dizinine koyamazsınız. Aksi takdirde ilgili sayfa çalışırken “parse” hatası oluştur.
2. Sayfanın en üstünde bir @ Control direktifi oluşturun ve kullanacağınız dili (eğer kullanacaksanız) belirleyin.
3. Kullanıcı kontrolünün görüntülemesini istediğiniz kontrolleri ekleyin.
4. Kontrollerin olayları, veri kaynağından veri okuma ya da yazma gibi kullanıcı kontrolünüzün gerçekleştirmesini istediğiniz görevler için gerekli kodları yazın.
5. Kullanıcı kontrolü ve ev sahibi sayfa arasında bilgi paylaşımı yapmak istiyorsanız özellikleri kullanıcı kontrolünde oluşturun. Özellikleri, herhangibir sınıf yaratırken yaptığınız gibi public olarak da ayarlayabilirsiniz, get veset ifadelerinden de yararlanabilirsiniz.

Bazen hazır ASP.NET Web sunucu kontrolleri tarafından desteklenmeyen işlevleri gerçekleştirmek isteyebilirsiniz. Bu gibi durumlarda kendi kontrollerinizi yaratmanız mümkün. İki seçeneğiniz var;
• Kullanıcı Kontrolleri: Kullanıcı kontrolleri içine işaretleyici ve web sunucu kontrolleri yerleştirebileceğiniz taşıyıcılardır. Bu kontrollere birim gibi davranabilir dolayısıyla özellik ve yöntemlerini tanımlayabilirsiniz.
• Uyarlanmış kontroller: Uyarlanmış kontrol, “Control” ve “WebControl” den kalıtımsal olarak türeterek yazdığınız sınıfdır.
Kullanıcı kontrollerinin oluşturulması, uyarlanmış kontrollere oranla büyük ölçüde daha kolaydır çünkü var olan kontrolleri tekrar kullanma şansınız vardır. Bu da özellikle karışık kullanıcı arayüzü unsurları ile birlikte oluşturulmalarını kolaylaştırır. Bu makale ASP.NET kullanıcı kontrolleri ile çalışma hakkında genel bir bakış sağlamaya yöneliktir.

Kullanıcı Kontrolü Yapısı
Bir ASP.NET kullanıcı kontrolü hem arayüzü hem de kodu bakımından bütün bir ASP.NET web sayfasına (.aspx dosyası) benzer. Kullanıcı kontrollerini de ASP.NET web sayfalarını oluşturduğunuz şekilde oluşturursunuz ve istediğiniz işaretleyici ve alt kontrolleri eklersiniz. Bir kullanıcı kontrolü, aynı web sayfasının yapabildiği gibi kendi içeriğini çalışma zamanında değiştirebilecek veri bağlama gibi kodlar içerebilir. Kullanıcı kontrollerinin ASP.NET web sayfalarından ayrıldığı noktalar aşağıdaki gibidir:
• Kullanıcı kontrollerinin dosya uzantıları .ascx’dir.
• Kullanıcı kontrolleri ayarlar ve diğer özellikleri tanımlamak için @ Page komutu yerine @ Control komutu içerir.
• Kullanıcı kontrolleri tek başlarına çalıştırılabilir dosyalar değillerdir. ASP.NET sayfaları içerisine herhangi bir kontrolün yerleştirildiği gibi yerleştirilmeleri gerekir.
• Kullanıcı kontrolleri html, body ve form etiketlerini içermezler. Bu etiketler kontrolün bulunduğu web sayfasında olmak zorundadır.
ASP.NET web sayfasında kullandığınız bütün HTML etiketlerini (html, body ve form etiketleri hariç) ve web kontrollerini kullanıcı kontrolünde de kullanabilirsiniz. Mesela araç çubuğu olarak kullanılmak üzere bir kullanıcı kontrolü oluşturuyorsanız bu kullanıcı kontrolünün üzerine bir dizi Button web sunucu kontrolü yerleştirerek bu butonlar için olay yordamları oluşturabilirsiniz. Aşağıdaki örnek, kullanıcının aşağı ve yukarı butonlarına tıklayarak metin kutusu içerisindeki bir dizi seçeneği değiştirebildiği bir döndürücüyü çalıştıran kullanıcı kontrolünü gösteriyor.
Güvenlik Notu
Bu örnek potansiyel bir tehdit olarak kullanıcı girdilerini kabul eden metin kutusu içeriyor. Varsayılan olarak ASP.NET web sayfaları kullanıcının bu kutulara girdiği değerlerin betik ya da HTML etiketi içerip içermediğini kontrol ediyor.

Dikkat ettiyseniz kullanıcı kontrolü ASP.NET sayfasına oldukça benziyor; birkaç kontrol (bir metin kutusu ve iki buton) ve butonların tıklanma olayları ile sayfanın yüklenme olayını işlemek için kodlar bulunuyor.Ancak kullanıcı kontrolü, içindeki kontroller hariç hiçbir etiket içermiyor ve @ Page komutu yerine @ Control komutu ile başlıyor.
Bir Sayfaya Kullanıcı Kontrolü Eklemek
Bir kullanıcı kontrolünü bir taşıyıcı sayfaya eklemek için onu söz konusu sayfaya kayıt ettirmelisiniz. Kaydederken, sayfa üzerinde kullanıcı kontrol bildiriminizi yaparken kullanacağınız kullanıcı kontrolünü içeren .ascx dosyasını, ön ek etiketini ve isim etiketini belirtmelisiniz.
Kullanıcı Kontrolü için Özellikleri ve Yöntemleri Belirleme
Bir sayfanın özelliklerini ve yöntemlerini nasıl belirliyorsanız kullanıcı kontrolünün özellik ve yöntemlerini de aynı şekilde belirleyebilirsiniz. Kullanıcı kontrolünün bir özelliğini tanımladığınızda, aynı zamanda bu özelliği hem bildirimsel olarak hem de kod içerisinde değiştirme imkanı kazanmış oluyorsunuz.
Kullanıcı Kontrolündeki Olaylar
Bir kullanıcı kontrolü web sunucu kontrolleri içerdiğinde bu kullanıcı kontrolü içerisine alt kontroller tarafından tetiklenen olayları işlemek üzere kod yazabilirsiniz. Örneğin, bir kullanıcı kontrolü bir buton içeriyorsa bu kullanıcı kontrollünün içinde butonun tıklanma olayı için bir işleyici oluşturabilirsiniz. Taşıyıcı sayfanın varsayılan olarak kullanıcı kontrolündeki alt kontroller tarafından tetiklenen olaylara erişimi yoktur. Ancak kullanıcı kontrolünün kendisi için olay yordamları tanımlayarak, taşıyıcı sayfanın olay sırasında bilgilendirilmesi için tetiklenmesini sağlayabilirsiniz. Bunu herhangi bir sınıf için olay yordamı tanımlar gibi yapabilirsiniz.
Dış Kaynaklara Başvuru
Kullanıcı kontrolleri, taşıyıcı sayfalardan ayrı olarak önbellekleme komutlarını destekleyebilirler. Dolayısıyla sayfalarınıza kullanıcı kontrolleri ekleyebilir ve sayfaları parça parça önbellekleyebilirsiniz.

Yazar: Enes Eker

CEVAP VER

Please enter your comment!
Please enter your name here