Arama butonu
Bu konudaki kullanıcılar: 1 misafir
2
Cevap
567
Tıklama
0
Öne Çıkarma
CheckBoxList ile Filtreleme ..
S
10 yıl
Onbaşı
Konu Sahibi

Arkadaslar, yapmak istedigim coklu CheckBoxList seciminde kategorilere ait urunleri filtreleme.
Yazdigim kod ile CheckBoxList secildiginde herzaman son secilen urunu getiriyor.

Ornek olarak resimde de gorebilirsiniz. Ilk secilen elektronik kategorisi normal calisiyor fakat coklu secimde ise hem Elektronik hemde Ayakkabi kategorisi secildiginde sonuc olarak her ikisi degilde son secilen Ayakkabi kategorisine ait urunu gosteriyor.

< Resime gitmek için tıklayın >

< Resime gitmek için tıklayın >

Bunu Yaparken kullandigim kod soyle :


<asp:CheckBoxList ID="CheckBoxList1" runat="server" AutoPostBack="True"
onselectedindexchanged="CheckBoxList1_SelectedIndexChanged"
</asp:CheckBoxList>


protected void CheckBoxList1_SelectedIndexChanged(object sender EventArgs e)
{
foreach (ListItem item in CheckBoxList1.Items)
{
if (item.Selected)
{
System.Data.SqlClient.SqlDataAdapter da = DBTools.AdapterKomut("Select * from Urunler where ID=@ID");
da.SelectCommand.Parameters.AddWithValue=("@ID", item.Value.ToString());
DataTable dt = new DataTable("Urunler");
da.Fill(dt);
DataList3.DataSource = dt;
DataList3.DataBind();

}


Burda Bir hata var ama ben goremiyorum .. Yardimci olabilerseniz cok sevinirim ..

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



S
10 yıl
Teğmen

Adım adım düşünelim dostum. İlk seçili için girdin foreach ın içine. Seçili dedin buldun.

Sonra 2. ye baktı seçili değil girmedi.

Ama geldi 3. ye...

Seçili diye girdi if in içine

System.Data.SqlClient.SqlDataAdapter da = DBTools.AdapterKomut("Select * from Urunler where ID=@ID");

Yepyeni bir komutunu aldı

da.SelectCommand.Parameters.AddWithValue=("@ID", item.Value.ToString());

yeni parametresini aldı..

DataTable dt = new DataTable("Urunler");
da.Fill(dt);

Yeni tablosuna da oturdu direk. Senin Elektronik için yaptığın sorgu, doldurduğun DataTable bir üst satırdaki new DataTable ile hiç bir işe yaramaz hale geldi.

Bunun yerine selected ın girişinde yeni bir tablo tanımlasan, sonra da sorguyu başka bir tabloya doldursan, en son olarak da ana listene bu geçici tablodaki satırları eklersen istediğin olur diye düşünmekteyim.

Kolay gelsin.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @stylemania
S
10 yıl
Onbaşı
Konu Sahibi

Oncellikle ilgilendigin icin sagol SharpShoooterr. Fakat verdigin oneriyi kafamda kurmaya calisiyorum ama nasil olacagini cozemedim.
Senin icinde zahmet olmazsa daha acik bir sekilde anlatabilirmisin.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.