Merhabalar.
Kullanıcı kontrollerinin uygulamalarımızda bize ne kadar yardımcı olduğu aşikârdır.
Örneğin büyük bir web uygulamasında tek bir kullanıcı kontrolünü projemizin tamamına dahil edebilmemiz, sonraki zamanlarda da tek bir yerden tüm uygulamayı değiştirebiliyor olmamız bile yeterlidir. Ancak kullanıcı kontrolleri sadece bu özelliğiyle sınırlı değildir.
Daha fazla işlevsellik, geliştirilebilirlik sunarlar.
Kimi zaman komplike üye kontrol işlemlerinde, kimi zamanda basit bir menü yapısında kullanılırlar.
Caching(önbellekleme) mekanizmalarına da maruz kalabilirler ve hatta en çok kullanılan caching tekniklerinden biri olan Fragment Caching (Parçalı Önbellekleme) çoğunlukla kullanıcı kontrollerine uygulanır.
Ascx uzantılı dosyalardır.
Klasik ASP 3.0’ da kullanılan include dosyaların yerini almışlardır.
Ascx uzantılı bir sayfa direkt olarak browserdan görüntülenemez, bu şu demek; kullanıcı kontrolleri bir aspx web formuna parça olarak dahil edilerek kullanılırlar ve tek başlarına çalıştırılamazlar.
ASP 3.0’da dahil edilecek sayfaya;
<!--#INCLUDE FILE="baglanti.asp"-->
şeklinde yönerge olarak eklenirken,
ASP.Net ortamında;
<%@ Register Src="KullaniciKontrolu2.ascx" TagName="KullaniciKontrolu2" TagPrefix="uc1" %>
şeklinde sayfa direktifi olarak eklenir.
Buradaki TagName, TagPrefix etiketleri kullanıcı kontrolünü diğer kontrollerden ayırır. Sayfa içerisindeki kullanımı
TagPrefix:TagName şeklindedir.
Bir örnekle açıklayacak olursak, kullanıcının kontrolünün oluşturulması ve sayfaya dahil edilmesi şu şekilde gerçekleşir.
| 1. |
File / New File / Web User Control seçenekleriyle “denemekullanicikontrol.ascx” adında yeni bir kullanıcı kontrolünü oluşturup, projemize dahil edelim. |
| 2. |
Oluşturduğumuz bu yeni kullanıcı kontrolünü(denemekullanicikontrol.ascx) açarak içine birtakım veriler girelim. |
| 3. |
Bu kontrolü eklemek istediğimiz sayfaya gelerek sayfanın üst kısmına sayfa direktifi olarak <%@ Register Src=" denemekullanicikontrol.ascx" TagName="KullaniciKontrolu1" TagPrefix="uc1" %> ekleyelim. |
| 4. |
Son olarak da sayfamızda kullanıcı kontrolümüzü eklemek istediğimiz yere gelip <uc1:KullaniciKontrolu1 ID="denemekullanicikontrolü" runat="server" /> yazdığımızda kullanıcı kontrolümüzü eklemiş oluyoruz. |
Yukarıdaki örnekteki gibi TagPrefix:TagName şeklinde bir kullanımla kullanıcı kontrolümüzü diğer web kontrollerinden ayırdık ve sayfamıza ekledik. Çünkü her sayfada, aynı TagName, TagPrefix etiket isimlerinden sadece bir tane olabilir. Aksi takdirde uygulamanız çalışmayacaktır.
Şimdi de çalışma zamanında bir kullanıcı kontrolünün nasıl eklenildiğini bir örnekle inceleyelim.
Şekildeki gibi yeni bir proje açalım ve projemize WebUserControl.ascx adında bir kullanıcı kontrolü ekleyelim. Sonra da Default.aspx sayfamıza şekildeki gibi bir buton kontrolü birde panel kontrolü ekleyelim. Kullanıcı kontrolümüzün içerisine aşağıdaki resimdeki gibi bir açıklama eklememiz örneğimizin çalışmasını doğrulayacaktır.
Son olarak BtnEkle web kontrolümüze tıklanıldığında yapılacak işlem için BtnEkle kontrolümüzün Click olayını aşağıdaki şekilde yazalım.
Protected Sub Btnekle_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Btnekle.Click
PnlkullaniciKontrol.Controls.Add(LoadControl("WebUserControl.ascx"))
End Sub
Hepsi bu kadar. Uygulamamızı çalıştırdıktan sonra “Kullanıcı Kontrolünü Ekle” butonuna basarsak şu mesajı alacağız.
Umarım faydalı olmuştur.
Makalenin kaynak kodlarına ulaşmak için buraya tıklayınız.
İsmail AKTAŞ