Gdzie powinno znajdować się filtrowanie,sortowanie, paginacja?

Odpowiedz Nowy wątek
2015-02-18 23:28
0

Siema, czy moglibyście doradzić mi gdzie powinny znajdować się takie funkcjonalności jak:filtrowanie, sortowanie, paginacja? Na jakiej warstwie je osadzić ?

Pozostało 580 znaków

2015-02-18 23:42
1

A mało to tutoriali o tym jest?

Pozostało 580 znaków

2015-02-19 00:33
0

Wszędzie są w kontrolerze ale to nie są jakieś rozbudowane aplikacje i zastanawiam się czy nie jest to robione na szybko..

Pozostało 580 znaków

2015-02-19 00:36
0

No to co chciałbyś za każdym razem pobierać wszystkie rekordy z bazy i wysyłać do widoku żeby on to sobie sortował, stronicował itp?

edytowany 1x, ostatnio: dam1an, 2015-02-19 00:37

Pozostało 580 znaków

2015-02-19 00:50
0

Jak mam rozumieć:

za każdym razem pobierać wszystkie rekordy

Jeżeli posiadam coś takiego, kod z tutoriala, to przecież za każdym razem pobiera listę studentów z bazy, w momencie naciśnięcia danej kolumny do posortowania ?


public ViewResult Index(string sortOrder, string searchString)
{
    ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
    ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";
    var students = from s in db.Students
                   select s;
    if (!String.IsNullOrEmpty(searchString))
    {
        students = students.Where(s => s.LastName.ToUpper().Contains(searchString.ToUpper())
                               || s.FirstMidName.ToUpper().Contains(searchString.ToUpper()));
    }
    switch (sortOrder)
    {
        case "name_desc":
            students = students.OrderByDescending(s => s.LastName);
            break;
        case "Date":
            students = students.OrderBy(s => s.EnrollmentDate);
            break;
        case "date_desc":
            students = students.OrderByDescending(s => s.EnrollmentDate);
            break;
        default:
            students = students.OrderBy(s => s.LastName);
            break;
    }

    return View(students.ToList());
}

Pozostało 580 znaków

2015-02-19 02:36
0
roy23 napisał(a):

Siema, czy moglibyście doradzić mi gdzie powinny znajdować się takie funkcjonalności jak:filtrowanie, sortowanie, paginacja? Na jakiej warstwie je osadzić ?

Te mechanizmy należy zaimplementować w warstwie dostępu do danych, bo są one ściśle związane z określoną technologią i rodzajem bazy danych.

roy23 napisał(a):

Jeżeli posiadam coś takiego, kod z tutoriala, to przecież za każdym razem pobiera listę studentów z bazy, w momencie naciśnięcia danej kolumny do posortowania ?

Owszem, w tym okropnym kodzie tak jest. Dlatego właśnie stosuje się paginację, żeby nie pobierać wszystkich rekordów za każdym razem.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2015-02-19 09:11
ne0
0

Nie podoba mi się Twój kod.

Moim zdaniem takie sortowania jak: po dacie, alfabetycznie dotyczą stricte danych które już załadowałeś - więc to ogarniałbym w javascript.


Pomogłem? To dobrze :)
Na milionie wierszy? - somekind 2015-02-19 11:22
nie napisał nigdzie o ilości. - ne0 2015-02-19 11:48
Ilość jest nieważna. - somekind 2015-02-19 11:50

Pozostało 580 znaków

2015-02-19 17:17
0

Kod został przytoczony z oficjalnej strony ASP.NET, tak więc miałem rację co do kodu pisanego

na szybko.
Czy mógłbym prosić o jaśniejsze sprecyzowanie zastosowania paginacji przy sortowaniu? Albo o jakiś artykuł, tutorial? Nie bardzo wiem o co chodzi :)

A czego dokładnie nie rozumiesz? - dam1an 2015-02-19 17:22

Pozostało 580 znaków

2015-02-19 17:57
0
roy23 napisał(a):

Czy mógłbym prosić o jaśniejsze sprecyzowanie zastosowania paginacji przy sortowaniu?

No chyba najpierw sortujesz, potem stronicujesz, w drugą stronę to nie ma żadnego sensu.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0