Forum

PagedList ve Defaul...
 
Bildirimler
Hepsini Temizle

PagedList ve DefaultFilter Aynı View de düzgün çalışmıyor.

 Anonim

Merhaba;

Üzerinde çalıştığım mvc ile yaptığım sitede ürünler sayfasında pagedlist yapmak istiyorum. Daha önceden listelerken SearchString ve filter uyguladım view içine birtürlü pagedlist i ekleyemedim. Aslında yaptığım filter de index.cshtml e çekince sanki pasifmiş gibi görünüyor yani rengi sarı gibi. Örneğin (@using emotorsite.Models @model IList<emotorsite.Models.Urunler> buradaki IList çok açık renkte üzerine gelincede interface olarak görünüyor. nerede hata yaptığımı çözemedim. Yardımcı olacak biri varsa çok sevinirim.

Alıntı
Konu başlatıcı Gönderildi : 14/02/2019 15:30
Ali UYSAL
(@aliuysal)
Kıdemli Üye Forum Yöneticisi

Merhabalar;

Burayı incelediniz mi, 

https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-application

Buradaki yönergelere göre devam ederek halen sorununuz devam ediyorsa kodunuzu paylaşırsanız yardımcı olmaya çalışalım.

 

Dijital dönüşüm başlıyor...
WinFlow e-Fatura Onay Akış Süreç Yazılımı
Android El Terminali

CevapAlıntı
Gönderildi : 15/02/2019 16:41
 Anonim

pagedlist veya filter i ayrı ayrı çalıştırdığımda kısmen çalışıyor. fakat iki sorguyu birarada çalıştıramadım. Vermiş olduğunuz linki inceledim oradan da bi sonuca varamadım. Benden kaynaklı konuyu kavrayamadığımdan çözemiyorum galiba. 

 

 

//productcontrol

public class ProductController : BaseContoller

{

// GET: Product public ActionResult Index(string id, DefaultFilter filter)

{ //int? SayfaNo ViewBag.Title = "Ürün Listesi"; var list = Db.Urunlers.AsQueryable(); //int _sayfaNo = SayfaNo ?? 1; //ViewBag.Tags = Db.Categories.OrderBy(d => d.OrderNumber).ToList(); // var list = Db.Urunlers.Where(d => d.Katseo.Equals(Id)); //return View(list.ToList()); if (!string.IsNullOrEmpty(id)) { list = list.Where(d => d.Katseo.Equals(id)); ViewBag.CategoryName = Db.Categories.Single(d => d.SeoText.Equals(id)).Text; //var PagesList = Db.Urunlers.OrderByDescending(m => m.SeoText).ToPagedList(_sayfaNo, 10); } list = AddFilter(filter, list); return View(list.ToList()); } public ActionResult Detail(string Id) { var Urunler = Db.Urunlers.SingleOrDefault(d => d.SeoText.Equals(Id)); if (Urunler == null) throw new Exception("ürün bulunamadı"); ViewBag.Title = Urunler.Baslik; return View(Urunler); } }

//defaultfilter

using System.Collections.Specialized;

using System.Web.Mvc;

public class DefaultFilter { public string SearchString { get; set; } public ProductColumnEnum Sort { get; set; } public SortDir SortDir { get; set; } } public static class UrlCreater { public static MvcHtmlString Create(ProductColumnEnum eColumnEnum, NameValueCollection collection) { var dir = "asc"; var tag = new TagBuilder("a"); var value = collection.Get("SortDir"); if (!string.IsNullOrEmpty(value)) { if (value == "asc") { dir = "desc"; } } tag.Attributes.Add("href", "/Product/Index" + "?Sort=" + eColumnEnum + "&SortDir=" + dir); switch (eColumnEnum) { case ProductColumnEnum.Arac: tag.SetInnerText("Araca Göre Sırala"); break; case ProductColumnEnum.Marka: tag.SetInnerText("Markaya Göre Sırala"); break; }

return new MvcHtmlString(tag.ToString()); } }

//basecontroller

public static IQueryable AddFilter(DefaultFilter filter, IQueryable list) { if (filter != null) { if (!string.IsNullOrEmpty(filter.SearchString)) { list = list.Where( d => d.Baslik.Contains(filter.SearchString) || d.Arac.Contains(filter.SearchString) || d.OEM01.Contains(filter.SearchString) || d.OEM02.Contains(filter.SearchString) || d.OEM03.Contains(filter.SearchString) || d.OEM04.Contains(filter.SearchString) || d.OEM05.Contains(filter.SearchString) || d.Aciklama.Contains(filter.SearchString)); } if (filter.SortDir == SortDir.Asc) { if (filter.Sort == ProductColumnEnum.Arac) list = list.OrderBy(d => d.Arac); if (filter.Sort == ProductColumnEnum.Marka) list = list.OrderBy(d => d.Marka); } else { if (filter.Sort == ProductColumnEnum.Arac) list = list.OrderByDescending(d => d.Arac); if (filter.Sort == ProductColumnEnum.Marka) list = list.OrderByDescending(d => d.Marka); } } return list;

//index.cshtml

@foreach (var Urunler in Model) {

}

@*@Html.PagedListPager(Model, _sayfaNo => Url.Action("Index", "Product", new { SayfaNo = _sayfaNo }))*@

CevapAlıntı
Konu başlatıcı Gönderildi : 19/02/2019 14:26
Paylaş: