Class ile datasource oluşturma

Arkadaşlar Repeater, DataList ve benzeri Asp.Net kontrollerine kendi oluşturduğumuz bir class ile veri kaynağı oluşturabiliriz. 

Kullanıcağım örnekte veritabanından gelen verileri Entity Framework kullanarak çekiyorum..

"Not: Veritabanından üyelik durumları aktif olan üyeleri çekiceğiz. Öncelikle verileri tutacak class'ımızı yazıyoruz."

//Class içinde oluşturduğumuz property'leri Eval("propertyismi"); şeklinde tanıtıyoruz.

public class Member
{
  public int uye_id{get;set;}
  public string adSoyad{get;set;}
}

Burda oluşturduğumuz class aslında sql server üzerinde oluşturduğumuz tablodan hiç bir farkı yok. Daha sonra verilerimizi çekiyoruz.


  ornekdb db = new ornekdb();

  List yeni_liste = new List();
  var uyeler = db.members.Where(w=>w.is_active=true).ToList();

  //foreach ile dönen liste içinde dönüp oluşturduğumuz class'ın
 //Listesine atıyoruz.
  foreach(var item in uyeler)
{
    yeni_liste.Add(new Member{ uye_id=(int)item.id, adSoyad=item.ad+" "+item.soyad  });
}

Verileri yeni veri kaynağına ekledikten sonra artık Repeater'ımıza bağlıyoruz.

  rptActiveMembers.DataSource = yeni_liste;
  rptActiveMembers.DataBind();

Aynı veri kaynağını DropDownList kontrolünede bağlayabiliriz.


//DropDownList'in Text Alanı
  drpActiveMembers.DataTextField = "adSoyad"; 

//DropDownList'in seçilecek olan item'ının değeri.
  drpActiveMembers.DataValueField ="uye_id";  

  drpActiveMembers.DataSource = yeni_liste;
  drpActiveMembers.DataBind();

İyi Kodlar!