Merhaba arkadaşlar, Asp.Net'i yeni yeni öğrenmeye başladığınız zaman belli bir zaman sonra ihtiyaç duyacağınız ItemDataBound event'ının nasıl kullanılacağını göstereceğim.
Şimdi herhangi bir projemizin hernangi bir .aspx sayfasında :
- Asp.Net DataList kontrolü oluşturalım ID'si dlAnaKategori olsun
- dlAnaKategori DataList'imizin ItemTemplate'ine bir Asp.Net Label kontrolü yerleştirelim ve ID'si lblKategoriID olsun.
<asp:DataList ID="dlAnaKategori" runat="server">
<ItemTemplate>
<asp:Label ID="lblAnaKategoriID" runat="server" Text="Label"></asp:Label>
</ItemTemplate>
</asp:DataList>
lblKategoriID, artık DataList'imizin her item'ında oluşturulacaktır. Fakat bu kontrole .cs sayfanızda direkt olarak ulaşamayız çünkü o DataList'in item'larına ait bir kontrol. Dolayısıyla müdahele etmemiz için ItemDataBound event kodlarına ihtiyaç duyacağız.
NASIL KULLANILIR?
DataList'in ItemDataBound event'ını oluşturmanız için;
1-) .aspx sayfanızın Design tarafına geçin ve ilgili DataList'inize bir kere tıklayın.
2-) Sağ alt köşede yer alan Properties kutucuğunun içerisinin değiştiğini ve Dataliste ait özelliklerin listelendiğini göreceksiniz
3-) Yıldırım işaretine bir kez tıklayın. 
4-) Tıkladıktan sonra DataList'e bağlı event'ların listesi gelecektir ve o listenin içerisinde ItemDataBound'da bulunmaktadır. Çift tıklayıp isimlendirmesini ve .cs tarafındaki kodların oluşmasını otomatik olarak yapmasını sağlayabilirsiniz. [RESİM - 1]
RESİM - 1 : ItemDataBound nasıl oluşturulur?
Bu işlem yapıldıtan sonra ;
.aspx sayfasında ki DataList'in şöyle bir özellik aldığını göreceksiniz :
onitemdatabound="dlAnaKategori_ItemDataBound"
.cs tarafında ki ItemDataBound event kodları :
protected void dlAnaKategori_ItemDataBound(object sender, DataListItemEventArgs e)
{
}
Şimdi DataList'imizin içerisinde ki Label kontrolüne nasıl erişebileceğimize bakalım.
"DataListItemEventArgs e" nesnesini kullanacağız.
protected void dlAnaKategori_ItemDataBound(object sender, DataListItemEventArgs e)
{
//DataList içerisinde ki Label'a, e nesnesinin item'larına
//FindControl methodu ile ulaşabiliyoruz.
Label lbl = (Label)e.Item.FindControl("lblKategoriID");
lbl.Text = "Ulaştık, artık DataList'e bağlı olan veri kümesi için her dönüşünde bu kodlar çalışacak ve her item'in içerisindeki Label'da bu yazı yazacak.";
}