Asp.Net veri kontrollerine veri bağlama işlemi sırasında .Net Framework 4.5 versiyonuna kadar 2 yöntem uygulanmaktaydı:
1. Eval metodu ile bağlama
2. Veri kontrolünün ItemTemplate’i içerisinde verinin görüneceği yerlere Asp.Net kontrolleri eklemek (Label vb) ve bu kontrolleri ItemDataBound (örn: DataList1_ItemDataBound) eventı ile doldurma
Asp.Net 4.5 ile gelen Strongly Typed Data Controls ile bu işlem daha kolay hale geldi. Bu yöntemle kontrole hangi türden veri ataması yapılıyorsa o veri türü (source görünümünde) tanımlanır ve türün sütunları alınarak işlem yapılır.
Örnek uygulamamızda firmamızdaki personelleri Repeater kontrolünde listeleyelim. Bu işlem için Personel isminde bir sınıf oluşturalım ve bu sınıf türünden verileri listeleyelim.
public partial class Personeller : System.Web.UI.Page { public class Personel { public int PersonelId { get; set; } public string KimlikNo { get; set; } public string AdSoyad { get; set; } } protected void Page_Load(object sender, EventArgs e) { List<Personel> personeller = new List<Personel> { new Personel{ PersonelId = 1, AdSoyad="Veysel Uğur Kızmaz", KimlikNo="1111111111"}, new Personel{ PersonelId = 1, AdSoyad="Burak Tungut", KimlikNo="1111111112"}, new Personel{ PersonelId = 1, AdSoyad="Muhammed Önal", KimlikNo="1111111113"}, new Personel{ PersonelId = 1, AdSoyad="Selin Yetimoğlu", KimlikNo="1111111114"}, new Personel{ PersonelId = 1, AdSoyad="Esra Sedef", KimlikNo="1111111115"} }; rptPersoneller.DataSource = personeller; rptPersoneller.DataBind(); } }
Repeater kontorlünü ekledikten sonra ItemType özelliğine Personel sınıfını tanımlayalım.
<asp:Repeater ID="rptPersoneller" runat="server" ItemType="Personel"> <ItemTemplate> </ItemTemplate> </asp:Repeater>
Bu tanımlama ile repeater kontrolü içerisinde Personel sınıfından bir nesne ataması yapacağımızı tanımlıyoruz. Personel sınıfının özelliklerine erişebilmek için Item değişkenini kullanacağız.
<asp:Repeater ID="rptPersoneller" runat="server" ItemType="Personel"> <ItemTemplate> <div> <%#Item.KimlikNo %> - <%#Item.AdSoyad %> </div> </ItemTemplate> </asp:Repeater>
Projeyi çalıştırdığımızda personellerin listelendiğini göreceksiniz.
Yepyeni makalelerde görüşmek dileğiyle :)
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi
veysel@ugurkizmaz.com
www.ugurkizmaz.com