Forum
Merhabalar, sitenin adını uzun süredir duyuyordum ve duyduğum olumlu yorumlarda beni buraya yönlendirdi. İzninizle konuya gireyim.=) Öncelikle belirtmeliyim, konuyu açmadan önce diğer konu başlıklarını inceleyip yaşadığım probleme benzer bir konu var mı diyerek baktım. Bir tane bulabildim o da Listbox ile ilgili bir konuydu ve dili VB olduğu için pekte yararlanabildiğim söylenemez. Son çare olarak konuyu açmak durumunda kaldım. Belirtmek istedim sadece.
Çalıştığım projemde ufak bir problemim var. Öncelikle projemi anlatmak daha sağlıklı olacak sanırım. Projem bir register.aspx, login.aspx ve default.aspx formlarından ibaret.
Register.aspx kullanıcıların Text' lere istenen bilgileri girmesi ve butona basıldığı anda da girilen bilgilerin veritabanına kaydedilmesi şeklinde yapıldı.
login.aspx te de kullanıcıdan kayıtlı ise kullanıcı adı
ve şifre isteniyor, butona basınca da default.aspx sayfasına
yönlendirerek ekrana hoşgeldiniz tarzında ufak bir yazı ve logout butonu
mevcut.
Projem özetle bu. Aslında projemi bitirdim ufak bir ayrıntı dışında sorunsuz çalışıyor.
Problemim ise; Db de ki tablomun alan adlarından biri 'Hobiler' ve bu
alanda birden fazla veri olması istendi benden('yüzmek,resim
çekmek,sinema' gibi...). Yani Asp.Net tarafında Checkboxlist ile birden
fazla seçenek
vereceğim ve kullanıcının seçtikleri de veritabanına kaydedilecek. Bu
kısımla ilgili bir ilerleme kaydedemedim maalesef. Nette araştırdıklarım
genelde veritabanındaki kayıtları Checkbox'a getirmek ile ilgiliydi
bana tam tersi gerek. Birkaç örnek buldum ancak denediğimde istediğim verimi alamadım maalesef. :S
Özetle; Checkboxlist' teki seçtiğim kayıtları
veritabanına nasıl kaydedebilirim?
Yardımlarınız için şimdiden teşekkür ederim.
Merhaba, http://www.apostylee.com/aspnet-ddownlist-checkboxlist-ve-radiobuttonlist-kontrollerinin-kullanimi/ şurada nasıl kullanıldığını yazmıştım. Eğer anlaşılmayan bir durum olursa yine buradan sorabilirsiniz. Kolay gelsin.
Hımm baktımda bende sadece db den doldurma işini yazmışım 🙂
Şu şekilde basit bir döngü kurup seçilenleri alabilirsiniz 😉
foreach (ListItem item in CheckBoxList1.Items)
{
if (item.Selected)
{
Response.Write(item.Value);
}
}
Merhaba,
Buna benzer şey olabilir.Ama burada "iterate CheckBoxList" sahip olmalısınız.
foreach (CheckBox item in CheckBoxList1)
{
if (item.Checked)
{
}
}
Saygılar,
İlgilendiğiniz için teşekkür ederim.
Verdiğiniz örneği denedim ancak şöyle bir durum oluştu. Checkboxlist' te ki seçeneklerimden 2 tanesini seçip çalıştırdığımda Db' ye kaydediyor ancak aynı alanda değil. Altalta aynı 2 satır oluşuyor, iki kere kaydetmişim gibi. Sadece hobi kısmı farklı. İlkinde ilk seçtiğim, diğerinde ikinci seçtiğim. Benim istediğim bunları yanyana kaydedebilmek.
Atıyorum;
a,b şeklinde gibi.
Merhaba,
Buna benzer şey olabilir.Ama burada "iterate CheckBoxList" sahip olmalısınız.
foreach (CheckBox item in CheckBoxList1)
{
if (item.Checked)
{}
}Saygılar,
İlgilendiğiniz için teşekkürler.
Verdiğiniz örnek ilk örnekle aynı gibi, sadece sizinde dediğiniz gibi iterate checkbox gerekiyor ki onu da göremedim. =) Önceki yorumumda da belirttiğim gibi istediğim seçtiklerimi ilgili alana a,b şeklinde kaydedebilmek. Böyle yapınca alt alta oluyor ve bu kayıt tekrarına sebep oluyor. Bunla ilgili yardımcı olabilir misiniz?
Merhaba Forumumuza öncelikle hoşgeldiniz!
Şimdi cevap verebiliriz.Söylediğiniz gibi aralarına virgül koyarak yapmak istiyorsanız o zaman şunu deneyiniz.
String selectedItem = string.Empty;
foreach (ListItem item in CheckBoxList1.Items)
{
if (item.Selected)
{
string.Format(selectedItem, ",", item.Value);
}
}
selectedItem = selectedItem.Substring(1);
Saygılar,
Çok teşekkür ederim, hoşbuldum.
Verdiğiniz örneği denedim ancak yine bir sorun var.
' selectedItem = selectedItem.Substring(1); ' bu kodu yazıp çalıştırdığımda bilgileri girdikten sonra kaydet butonuna bastıktan sonra şöyle bir hata veriyor: "startIndex cannot be larger than lenght of string.
parameter name:startIndex"
Bunu silip çalıştırdığımda da kaydediyor ancak hobiler alanı null olarak görünüyor. :s
Ek olarak belirttiğim kodun tam olarak ne işe yaradığını da açıklarsanız çok sevinirim.
Bunu denermisin.
String selectedItem = string.Empty;
foreach (ListItem item in CheckBoxList1.Items)
{
if (item.Selected)
{
string.Format(selectedItem, ",", item.Text);
}
}
if (selectedItem != string.Empty)
{
selectedItem = selectedItem.Substring(1);
}
Saygılar,
Denedim,hata vermedi bu sefer. Kayıtları girip çalıştırdıktan sonra Hobiler alanı yine null ve iki tane checkbox seçtiğimden ötürü aynı kaydı 2 kere kaydetmiş. :S
Bir de şöyle denedim;
for(int i=0;i<CheckBoxList1.Items.Count;i++)
{
if (CheckBoxList1.Items[i].Selected == true)
{
cmd.Parameters.Add("@Hobies", SqlDbType.VarChar).Value = CheckBoxList1.Items[i].Text.ToString();
cmd.ExecuteNonQuery();
}
}
Bunu yazdığımda da mesela ben 3 tane seçtim ancak sadece ilk seçtiğimi alıyor. Bu kodun üzerinden gidecek olursak eğer nasıl bir kod eklemeliyim ki seçtiklerim aynı alanda durabilsin?
Merhaba,
Bunu denermisin.
String selectedItem = string.Empty;
foreach (ListItem item in CheckBoxList1.Items)
{
if (item.Selected)
{
**selectedItem += "," + item.Text;**
}
}
if (selectedItem != string.Empty)
{
selectedItem = selectedItem.Substring(1);
}
** selectedItem += unutmuşum 🙂
Saygılar,
Verdiğiniz örneği sorunumu çözdükten sonra gördüm. =) Yinede teşekkür ederim notlarım arasına alacağım. =)
Ben çalıştırdığım koduda yazayım, aynı problemi yaşayan arkadaşlara yardımcı olabilir.
string iHoobies = "";
for(int i=0;i<CheckBoxList1.Items.Count;i++)
{
if (CheckBoxList1.Items[i].Selected == true)
{
iHoobies+= CheckBoxList1.Items[i].Text.ToString() + " , " ;
Tekrar teşekkürler. =)
}
}
Sorunun çözüldüğüne sevindim.Ayrıca ileriye dönük başka kodlarla ilgili herhangi bir sorun olursa,geri dönüş yapabilirsin.
Emin olabilirsiniz, iş hayatına yeni atıldım ve şu anda eğitim aşamasındayım. Sürekli projeler veriliyor yapmam için, takıldığım yerlerde sağlıklı dönüşler alabileceğim bir site olması benim için de çok iyi oldu.
Tekrar teşekkürler.