Сохранение параметров поиска для сортировки - PullRequest
0 голосов
/ 11 июля 2019

У меня есть контроллер, настроенный для фильтрации результатов на основе значения, переданного из раскрывающегося списка, и условия поиска, которое затем обновляет таблицу.Таблица также имеет сортировку (asc / desc) по ссылкам в заголовках таблицы.То, что я хочу сделать, - это найти пользователя для определенного термина, а затем отсортировать этот набор данных.При щелчке по заголовку теперь он сортирует исходный набор данных перед поисковым фильтром.Как сохранить значения исходных двух параметров searchString и field и добавить к ним sortOrder для сортировки этого набора данных при запросе?

DisplayViews () Метод


 public async Task<IActionResult> DisplayViews(String sortOrder, string searchString, string field)
        {
            ViewData["NameSortParm"] = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            ViewData["DefinitionSortParm"] = sortOrder == "Definition" ? "Definition_desc" : "Definition";
            ViewData["OwnerSortParm"] = sortOrder == "Owner" ? "Owner_desc" : "Owner";
            ViewData["CurrentFilter"] = searchString;
            var Tables = _context.Objects.Where(Object => Object.Type == "View");


            switch (sortOrder)
            {
                case "name_desc":
                    Tables = Tables.OrderByDescending(s => s.Name);
                    break;
                case "Definition":
                    Tables = Tables.OrderBy(s => s.Definition);
                    break;
                case "Definition_desc":
                    Tables = Tables.OrderByDescending(s => s.Definition);
                    break;
                case "Owner":
                    Tables = Tables.OrderBy(s => s.Owner);
                    break;
                case "Owner_desc":
                    Tables = Tables.OrderByDescending(s => s.Owner);
                    break;
                default:
                    Tables = Tables.OrderBy(s => s.Name);
                    break;
            }

            if (!String.IsNullOrEmpty(searchString))
            {   
                if((!String.IsNullOrEmpty(field) || !String.IsNullOrWhiteSpace(field)) && field == "Name")
                {
                    Tables = Tables.Where(s => s.Name.Contains(searchString));
                }
                else if((!String.IsNullOrEmpty(field) || !String.IsNullOrWhiteSpace(field)) && field == "Definition")
                {
                    Tables = Tables.Where(s => s.Definition.Contains(searchString));
                }
                else if ((!String.IsNullOrEmpty(field) || !String.IsNullOrWhiteSpace(field)) && field == "Owner")
                {
                    Tables = Tables.Where(s => s.Owner.Contains(searchString));
                }


                //return View(await Tables.AsNoTracking().ToListAsync());

            }


            return View(await Tables.AsNoTracking().ToListAsync());
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...