none
MVC'de Jquery İle Filtreleme RRS feed

  • Soru

  • Merhabalar,

    Mvc ile bir proje geliştiriyorum. Bir Ürünler sayfam var. Bu ürünler sayfamın filtreleme seçeneklerinde, Ürün Bedenlerini checkboxlar ile gösteriyorum. Yapmak istediğim şey Jquery yardımı ile seçilen ürün bedenlerine (birden fazla beden seçildiği varsayımı ile) göre sorgulama yaparak filtreleme yapmak istiyorum. Tek bir değer seçildiğinde filtreleme yapabiliyorum, ama birden fazla seçim yapıldığında nasıl bir yol izleneceğini bilmiyorum. Aklıma ilk gelen şey seçilen değerleri bir listeye atmak ve bu listeyi, kod tarafına göndermek. Fakat bunun jquery ile nasıl yapılacağı konusunda bilgim yok, araştırdım fakat doğru dürüst sonuç bulamadım. Bu konuda yardımlarınızı varsa önerilerinizi bekliyorum.

          @foreach (var i in db.BEDENOLCULERI)
                                {
                                    <li>
                                        <input type="checkbox" class="input-checkbox" id="@i.Id" name="@i.Id">
                                        <label for="@i.Id" class="checkbox-label">@i.YasGrubu <span style="font-size:12px;">(@i.BedenOlcusu Beden)</span></label>
                                    </li>
                                }

    Not: Sayfamdaki, Fiyata Göre Artan, Azalan vs alanlarındaki filtrelemeyi başarılı bir şekilde yapabiliyorum. Burada izlediğim yol: Önce Select kontrolünden seçilen herhangi bir değeri Jquery ile alıyorum, get metodu ile Ürünleri Listelediğim PartialViewResult'a gönderiyorum, aldığım sonuçları Jquery ile anlık olarak gösteriyorum. Bu yapıya göre daha iyi ve sağlıklı bir öneriniz olursa değerlendirmek isterim.

        $(document).ready(function () {
            $("select.ordering").change(function () {
    
                var siralamaSelect = $(".ordering option:selected").first().val();
                var katId = @ViewBag.KatId;
                $.get('@Url.Action("UrunList")',
                    {   KatId:katId,
                        Siralama: siralamaSelect
                    }, 
                        function (data) 
                        {
                          $(".urunlist").html('');
                          $(".urunlist").html(data);
                    });
    
            });
        });

      public PartialViewResult UrunList(int KatId, string Siralama)
            {
                List<URUNLER> UrunListesi = new List<URUNLER>();
    
                if (Siralama == "new" || Siralama == "")
                {
                    UrunListesi = db.URUNLER.Where(x => x.ANAURUNLER.KatId == KatId).OrderBy(x=> x.SiraNo).ToList();
                }
                else if (Siralama == "high")
                {
                    UrunListesi = db.URUNLER.Where(x => x.ANAURUNLER.KatId == KatId).ToList().OrderBy(x => x.Fiyat).ToList();
                }
                else if(Siralama == "low")
                {
                UrunListesi = db.URUNLER.Where(x => x.ANAURUNLER.KatId == KatId).ToList().OrderByDescending(x => x.Fiyat).ToList();
                }
    
                return PartialView(UrunListesi);
            }

    19 Temmuz 2018 Perşembe 23:02

Tüm Yanıtlar

  • {   
        KatId:katId,
        Siralama: siralamaSelect,
        beden : [1,5,9]
    }, 

    bu şekilde seçilen bedenlerin idlerini array olarak objeye eklerseniz controller'ınızda;

     public PartialViewResult UrunList(int KatId, string Siralama, int[] beden) 
    ....
    şeklinde alabilirsiniz. Bundan sonra bir Where lambda daha ekledinizmi işinizi görür sanırım.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    20 Temmuz 2018 Cuma 12:01
    Moderatör