Asp.net içinde user control kullanarak kendi bileşenlerinizi oluşturabilir, onları istediğiniz gibi istediğiniz yerde dinamik olarak kullanabilirsiniz. Textbox, label gibi hazır gelen bileşenleri her C# kodlayıcısı bilir. Bu bileşenleri tutup süreükleyerek veya dinamik olarak oluşturarak kolaylıkla kullanabiliriz. Ben de çoğu projem içerisinde kendi bileşenlerimi oluşturarak kullanmayı tercih ediyorum. User Control’ü oluşturmak oldukça kolaydır ve ufak bir aramayla çeşitli kaynaklardan öğrenebilirsiniz. Burada kısaca sizlere user controlü dinamik olarak sayfalara nasıl ekleyeceğimizi ve çeşitli özelliklerini nasıl kullanacağımı kısaca anlatmak istiyorum.
Oluşturmuş olduğunuz aspx dosyasına bir user control eklemenin 2 farklı yolu vardır. Birincisi direk eklemek, ikincisi ise kod tarafında dinamik olarak eklemek. Çoğu kullanıcı pratik olduğu için sayfaya tutup sürükleyerek direk ekler ancak dinamik yapılar içeren projelerimizde bu şekilde kullanmak çoğu zaman ihtiyaçlarımızı karşılamayacaktır.
Elimizde Kontrol adında olan bir user control olduğunu varsayalım;
Kontrol.ascx dosyasını sayfayı görünüm olarak açıp (sayfa.aspx) tutup sürüklediğimiz zaman sayfanın üst kısmına şu şekilde bir kod ekler;
<%@ Register src=”Kontrol.ascx” tagname=”Kontrol” tagprefix=”uc1″ %>
Bu kod ile sayfamıza bileşenimizi eklemiş oluyoruz. Kullanabilmek için ise sayfada istenilen yere
<uc1Kontrol ID=”Kontrol1″ runat=”server” />
satırını eklememiz gerekir. Eğer Kontrol bileşenimiz içinde bir özellik (property) tanımladıysak bunu kullanabilmek için kodu şu şekilde yazmamız gerekir;
<uc1Kontrol ID=”Kontrol1″ runat=”server” isim=”Baran” /> (isim adında bir özelliğimizin tanımlı olduğunu varsayalım)
Bileşenimizi bu şekilde kolaylıkla ekleyebilir ve kullanabiliriz ancak dinamik olarak eklemek istersek yukarıdaki kodların dışında kod satırına (sayfa.aspx.cs) şu kodları eklememiz gerekir;
Control Kontrol = LoadControl(@”Kontrol.ascx”) as UserControl;
Form.Controls.Add(Kontrol);
Bu şekilde bileşenimiz sayfamızdaki form içerisine eklenmiş oldu.
Eğer bileşenimiz içinde bir özellik (property) tanımladıysak dinamik olarak bu özelliğimizi şu şekilde kullanabiliriz;
using System.Reflection; kütüphanesini kodumuzun en üst kısmına ekleyelim.
PropertyInfo ozellik = StokDuzenle.GetType().GetProperty(“isim”); // Kontrolümüzde isim adlı tanımlanmış olan özelliğimizin var olduğunu varsayıyoruz.
ozellik.SetValue(Kontrol, “Baran”, null);
Bu şekilde istediğimiz şekilde tanımlamalarımızı yapabiliriz.



Hidden due to low comment rating. Click here to see.
Poorly-rated. Like or Dislike:
4
8
Çok teşekkürler dostum, dinamik olayında beni büyük büyük bir dertten kurtardın.
[Translate]
Beğendim - Beğenmedim:
0
2
mrb. benim anlamadığım o @ işareti ne
birde şunu sorayım dinamik olarak eklediğimiz usercontrol ile sayfa aynı klasörde ise çalışıyor farklı klasörlerde ise hata veriyor bunu nasıl aşabiliriz.
[Translate]
Beğendim - Beğenmedim:
0
2