Kuşkusuz biz Asp.Net yazılımcılarının en çok canını sıkan konulardan biride repeaterın içine yerleştirdiğimiz kontrollere codebehind dan ulaşamamamız. Bunun sebebi ise repeater, gridview, datalist gibi listeleme yapan kontrollerin asp.net içinde aynı ID ile nesne oluşturmanın çeşitli karışıklıklara sebeb olacağı gerekçesiyle ayrıca ClientID vermesidir. Eğer bu ClientID olmayıp direk ID ile ulaşabilsek örneğin codebehind da repeater içindeki bir label1 nesnesinin Text özelliğine “deneme”yazsak listelenen bütün label1 nesnelerinin Text özelliği “deneme” olacaktı ve buda hiçbir işimize yaramazdı. Peki böyle durumlarda illaki ulaşmamız gerekiyor ne yapmalıyız?basit olarak :gridview imizin içindeki label1 kontrolüne ulaşıp Text özelliğini değiştirmeyi deneyelim.protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e){Label deneme = (Label)e.Row.FindControl(“label1”);deneme.Text = “Ulaşamadım”;}
Eğer sadece böyle yazarsanız size nesnenin oluşturulamadığı yönünde bir hata verecektir. Peki nasıl ulaşırız bu nesneye?protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e){ if (e.Row.RowType == DataControlRowType.DataRow)
Label deneme = (Label)e.Row.FindControl(“label1”);deneme.Text = “Ulaşamadım”;
}

işte bu şekilde… Aslında gayet kolay olmasına rağmen giriş seviyesindeki birçok kullanıcının ve zamanında benimde başımı ağrıtan bu barikatı da aşmış oluyoruz… Bol kodlu günler dilerim…