En iyi yanıtlayıcılar
Birden fazla CheckBox ın BackGround değerlerini değiştirme

Soru
-
Merhaba arkadaşlar;
Ben ASP.NET te ki bir projemde 40 tane checkbox kullanıyorum.
checkbox ların ID'si (k1,k2,k3,.......,k40 olarak isimlendirdim)
veritabanına bu checkbox ların isimlerini kaydediyorum.
Örneğin; kaydettiğim isim = "k35" gibi.
Sorum ise bu kaydettiğim isimi okuyarak o isme ait checkbox' ın background değerini değiştirmek.
C# Form Application da şu şekilde kullanıyorum;
if (this.Controls[veriTabanindanGelenIsim] is CheckBox) this.Controls[veriTabanindanGelenIsim].BackColor = Color.White;
Yalnız bu işlemi ASP.NET Projemde nasıl kullanabilirim.
Şimdiden teşekkürler.
İyi günler.
- Düzenleyen Yunus Emre ALTINAY 30 Nisan 2013 Salı 14:07
Yanıtlar
-
Merhaba.
Öncelikle cevaplarınız için teşekkür ederim.
Sn. GÇ teşekkür ederim foreach ile kullandım ve oldu önce kullanmayı düşündüm ama nasıl yapacağım aklıma gelmedi sonda dank etti.
Sn. Önay YALÇINER sizin dediğiniz gibi kullanmaya çalışmıştım ama dediğiniz gibi Null Referance hatası aldım. Neden veritabanına kaydettiğimi sorarsanız. Otobus Firması Projesi için otobus koltuk numaralarını veri tabanına kaydediyorum. Sefer yüklenirkende eğer kayıtlı koltuk numarası varsa ona göre Checkbox ların arka plan, yazı ve Enable özellikleriniz değiştiriyorum.
Sorunun cevabını ise koltuk numarası alan bir method oluşturarak içerisine bir CheckBox dizisi olıştırdum bu diziye checkboxların isimlerini ekledim daha sonra forech ile bu dizi içerisinde dolaşarak veritabanından okuduğum ismi methoda yönlendirerek özelliklerinin değişmesini sağladım.
Kodlar ise;
public void Yerlesim(string KoltukAdi) //Parapetre olarak veritabanından göndermiş olduğum koltuk ismi alıyor. { //Buradaki k1, k2, k3,...,k46 CheckBoxların isimleridir. CheckBox[] Koltuklar = { k1, k2, k3, k4, k5, k6, k7, k8, k9, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44, k45, k46 }; foreach (CheckBox Koltuk in Koltuklar) { if (Koltuk.ID == KoltukAdi) { Koltuk.BackColor = Color.FromArgb(255, 102, 102, 102); Koltuk.ForeColor = Color.White; Koltuk.ToolTip = "Dolu koltuk"; Koltuk.Enabled = false; } } }
Method kullanım;
Yerlesim(VeritabanindanGelenKoltukNo);
Şimdi ise Önay YALÇINER in yöntemini this koymadan ve if kullanmadan yazarsam hata almıyorum ve çalışıyor.
Kodlar;
((CheckBox)FindControl(VeriTabanindanGelenKoltukNo)).Checked = true; ((CheckBox)FindControl(VeriTabanindanGelenKoltukNo)).BackColor = Color.White;
Yardımlarınız için teşekkür ederim
İyi günler.
- Yanıt Olarak İşaretleyen Yunus Emre ALTINAY 13 Mayıs 2013 Pazartesi 12:28
- Düzenleyen Yunus Emre ALTINAY 16 Mayıs 2013 Perşembe 23:13 pazantez hatası düzeltimi
Tüm Yanıtlar
-
foreach kullanabilirsiniz ve foreach içinde checkboxları döndürebilir ve arkaplanlarını değiştirebilirsiniz...
Ms. Destiny - Lies/Bout Me (Sexy Body Paint Video)
Scope Piskopos - Ben 46 Raporlu Bir Deliyim
Ben başarısız olmadım, sadece işin bu şekilde yapılmayacağının bir çok yolunu buldum ve işin nasıl yapılacağına da bir çok defa yaklaştım.
-
Checkbox'ların isimlerini neden database e kaydettiğinizi inanın kafam almadı ama;
if (this.FindControl(veriTabanindanGelenIsim) is CheckBox) ((CheckBox)this.FindControl(veriTabanindanGelenIsim)).BackColor = Color.White;
şeklinde id si lie ulaşabilirsiniz.
Not: Dikkat bulamazsa null reference hatası alabilirsiniz.
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
- Yanıt Olarak İşaretleyen Ali Rıza İnceoğlu 6 Mayıs 2013 Pazartesi 14:33
- Yanıt İşaretini Geri Alan Yunus Emre ALTINAY 13 Mayıs 2013 Pazartesi 12:28
-
Merhaba.
Öncelikle cevaplarınız için teşekkür ederim.
Sn. GÇ teşekkür ederim foreach ile kullandım ve oldu önce kullanmayı düşündüm ama nasıl yapacağım aklıma gelmedi sonda dank etti.
Sn. Önay YALÇINER sizin dediğiniz gibi kullanmaya çalışmıştım ama dediğiniz gibi Null Referance hatası aldım. Neden veritabanına kaydettiğimi sorarsanız. Otobus Firması Projesi için otobus koltuk numaralarını veri tabanına kaydediyorum. Sefer yüklenirkende eğer kayıtlı koltuk numarası varsa ona göre Checkbox ların arka plan, yazı ve Enable özellikleriniz değiştiriyorum.
Sorunun cevabını ise koltuk numarası alan bir method oluşturarak içerisine bir CheckBox dizisi olıştırdum bu diziye checkboxların isimlerini ekledim daha sonra forech ile bu dizi içerisinde dolaşarak veritabanından okuduğum ismi methoda yönlendirerek özelliklerinin değişmesini sağladım.
Kodlar ise;
public void Yerlesim(string KoltukAdi) //Parapetre olarak veritabanından göndermiş olduğum koltuk ismi alıyor. { //Buradaki k1, k2, k3,...,k46 CheckBoxların isimleridir. CheckBox[] Koltuklar = { k1, k2, k3, k4, k5, k6, k7, k8, k9, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44, k45, k46 }; foreach (CheckBox Koltuk in Koltuklar) { if (Koltuk.ID == KoltukAdi) { Koltuk.BackColor = Color.FromArgb(255, 102, 102, 102); Koltuk.ForeColor = Color.White; Koltuk.ToolTip = "Dolu koltuk"; Koltuk.Enabled = false; } } }
Method kullanım;
Yerlesim(VeritabanindanGelenKoltukNo);
Şimdi ise Önay YALÇINER in yöntemini this koymadan ve if kullanmadan yazarsam hata almıyorum ve çalışıyor.
Kodlar;
((CheckBox)FindControl(VeriTabanindanGelenKoltukNo)).Checked = true; ((CheckBox)FindControl(VeriTabanindanGelenKoltukNo)).BackColor = Color.White;
Yardımlarınız için teşekkür ederim
İyi günler.
- Yanıt Olarak İşaretleyen Yunus Emre ALTINAY 13 Mayıs 2013 Pazartesi 12:28
- Düzenleyen Yunus Emre ALTINAY 16 Mayıs 2013 Perşembe 23:13 pazantez hatası düzeltimi