Yazılım

Birden Fazla Label Kontrolünü Döngü Kullanarak Değiştirme

Çok Sayıda Sunucu Kontrolü ile Ard Arda İşlem Gerçekleştirme

Asp.Net’te bir sunucu kontrolünün özelliklerini kod ile değiştirmek oldukça kolaydır. Örneğin bir label nesnesinin text özelliğini;

Label1.Text = “Selam”;

şeklinde değiştirebiliriz.

Peki değiştirilecek çok sayıda label varsa, örneğin 100 tane Label kontrolünün tümünün Text özellikleri değiştirilmek isteniyorsa ne yapabiliriz. Hepsini tek tek değiştirmeye kalktığımızda 100 satır kod ortaya çıkacaktır.

Bunun yerine bir döngü içinde bu iş halledilebilir. 100 tane Label kontrolümüz var ve isimleri Label1, Label2, … , Label100 şeklinde olsun. Yani “Label” kısımları ortak, sondaki numara ise ardışık olarak atanmış durumda.

Öncelikle söyleyelim, şöyle bir kullanım işe yaramaz: Label [ i ]

Asp.Net sayfalarında Id’sine göre bir kontrolü bulmak için FindControl metodu kullanılır.FindControl metodu parantezi içerisinde ulaşılmak istenen kontrolün Id’si yazılır. Bu metodu kullanarak, aşağıdaki gibi bir döngü kuralım:

for (int i = 1; i <= 100; i++)
{
    var label = ((Label)FindControl(“Label” + i));
    label.Text = i.ToString();
}

Yukarıdaki 3 satırlık kod ile 100 adet labelin Text özelliklerini değiştirmiş olduk.

MasterPage Kullanılan Sayfalarda FindControl Metodu Hatası

Eğer yukarıdaki örneği masterpage’e bağlı bir sayfada çalıştıracaksak hata verecektir. Çünkü FindControl metodu, contentpage içindeki nesneyi bulamayacaktır. MasterPage ve FindControl kullanımı durumunda kodları şu şekilde yazabiliriz.

for (int i = 1; i <= 3; i++)
{
    var label = (Label)((ContentPlaceHolder)this.Master.FindControl(“MainContent”)).FindControl(“Label” + i);
        label.Text = “hello”;
}
Click to comment

CEVAP BIRAKIN

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

Copyright © 2018 Web Sitesi üzerinde yayınlanan tüm içerikler www.ogzblg.com sitesine aittir. Toplist 25 Yandex.Metrica

To Top