Created
December 30, 2025 17:35
-
-
Save sunmeat/4f62b7c12b9eb457b140e2b52c570307 to your computer and use it in GitHub Desktop.
правки показу списку гравців у контролері для сортування по стовпчиках
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| //... | |
| // GET: Players | |
| public async Task<IActionResult> Index(string sortOrder, string currentSort) | |
| { | |
| // зберігаємо поточний порядок сортування для правильного відображення стрілок у заголовках | |
| ViewData["CurrentSort"] = sortOrder; | |
| // параметри для перемикання сортування | |
| // чотири рядки нижче відповідають за сортування по імені, віку, позиції та команді | |
| // ViewData - використовується для передачі даних від контролера до представлення, це словник ключ-значення, частина будь якого контролера в ASP.NET Core MVC | |
| ViewData["NameSort"] = string.IsNullOrEmpty(sortOrder) ? "name_desc" : ""; | |
| ViewData["AgeSort"] = sortOrder == "age" ? "age_desc" : "age"; | |
| ViewData["PositionSort"] = sortOrder == "position" ? "position_desc" : "position"; | |
| ViewData["TeamSort"] = sortOrder == "team" ? "team_desc" : "team"; | |
| // базовий запит з підключенням команди | |
| var players = _context.Players | |
| .Include(p => p.Team) | |
| .AsQueryable(); | |
| // сортування залежно від параметра | |
| switch (sortOrder) | |
| { | |
| case "name_desc": | |
| players = players.OrderByDescending(p => p.Name); | |
| break; | |
| case "age": | |
| players = players.OrderBy(p => p.Age); | |
| break; | |
| case "age_desc": | |
| players = players.OrderByDescending(p => p.Age); | |
| break; | |
| case "position": | |
| players = players.OrderBy(p => p.Position); | |
| break; | |
| case "position_desc": | |
| players = players.OrderByDescending(p => p.Position); | |
| break; | |
| case "team": | |
| players = players.OrderBy(p => p.Team.Name); | |
| break; | |
| case "team_desc": | |
| players = players.OrderByDescending(p => p.Team.Name); | |
| break; | |
| default: // за замовчуванням — по імені за зростанням | |
| players = players.OrderBy(p => p.Name); | |
| break; | |
| } | |
| return View(await players.ToListAsync()); | |
| } | |
| // ... |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment