İçeriğe geç

Kısa Bilgi 2 – Linq Kullanarak Web Sayfasındaki Kontrolleri Listeleme

Bir web projemizde çok sayıda kontrol bulunabilir. Hatta bazı kontrollerimiz çalışma zamanında(run time) meydana gelebilir. Örneğin bir Repeater içinde birden fazla kontrol barındırabilir ve biz bu kontrollere erişmek isteyebiliriz. Bu tip durumlarda genelde FindControl methodunu kullansak bile farklı çözümler geliştirebiliriz. Örneğin projemize bir genişletilebilir method(extension) ekleyerek istediğimiz kontrole erişim yapabiliriz.

public static IEnumerable<Control> FindAll(this ControlCollection collection)
{
foreach (Control item in collection)
{
yield return item;
if (item.HasControls())
foreach (var subItem in item.Controls.FindAll())
yield return subItem;
}
}

Koddan anlaşılacağı gibi kontrol içinde kontrol varsa bunun da denetimini yaparak bize IEnumerable<Control> tipinden değer fırlatmaktadır. Örneğin oluşan web sayfamız içinde Text özelliği “Test” olan bir LinkButton oluşturulduğunu düşünelim ve buna bu genişletilebilir methodumuz ile erişmeye çalışalım.

LinkButton myControls = rptrTest.Controls.FindAll().OfType<LinkButton>().Where(p => p.Text == "Test").First();
Tarih:Kısa Bilgi

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.