Filtracja, sortowanie, wyszukiwanie wraz z paginacją

0

Mam zamiar zrobić filtrację, sortowanie, wyszukiwanie wraz z paginacją. Nie byłoby dla mnie żadnego problemu gdybym zrobił to bez paginacji. Mam zamiar to zrobić w jQuery i asp.net MVC. Z napisaniem metod w backendzie nie powinienem mieć problemu. Głównym problemem jest to jak wyświetlać dane jeśli byłaby takowa paginacja. Bez paginacji po prostu zwracałbym np. 150 rekordów i podpinał ją pod tabelkę na froncie za pomocą jQuery. W przypadku paginacji na dole strony byłoby trzeba dodać numery stron oraz buttony: następna i poprzednia strona.

Zakładając, że metoda zwróci mi 200 rekordów, natomiast na jednej stronie ma być wyświetlane 20 rekordów. Byłoby trzeba to podzielić na 10 stron. I teraz moim problemem jest to jak to zakodować aby po kliknięciu na dany numer strony wyświetlana by była właśnie ta strona elementów na którą kliknąłem. Do tego jeszcze dochodzi problem z tym, że byłoby trzeba w pewien sposób sprawdzać ile elementów zostało zwróconych i na podstawie tego wyświetlać odpowiednią ilość stron na dole strony. Dodatkowo jeszcze trzeba zakodować to w taki sposób aby na dole strony na starcie była pokazywana możliwość paginacji tylko stron 1,2,3,4,5. Jeśli bym zwracał 10 stron i przeszedł na 3 stronę to na dole strony powinna być możliwość przejść do stron 2,4,5,6,7. Nie mam pojęcia jak to zrobić.

Mam nadzieję, że mocno nie namieszałem. Będę wdzięczny za jakąkolwiek pomoc.

0

Jeśli bym zwracał 100 stron i przeszedł na 3 stronę to na dole strony powinna być możliwość przejść do stron 2,4,5,6,7. Nie mam pojęcia jak to zrobić.*

0

No, ale to z czym jest problem? Z wygenerowaniem odpowiedniego linka?
Używasz jakiegoś grida do tego czy masz to w pełni sam napisać?

0

Sam chcę to napisać bez żadnego grida. Nie wiem jak na podstawie zwróconych elementów utworzyć odpowiednią ilość stron na dole strony. Bo jest to zależne od tego ile elementów zostanie zwróconych. I nie wiem jak napisać takie coś: trzeba zakodować to w taki sposób aby na dole strony na starcie była pokazywana możliwość paginacji tylko stron 1,2,3,4,5. Jeśli bym zwracał 200 stron i przeszedł na 3 stronę to na dole strony powinna być możliwość przejść do stron 2,4,5,6,7. Nie wiem jak zrobić to aby w tym przypadku te strony prawidłowo się zmieniały jeśli przejdziemy np. na 3 stronę.

Mam nadzieję, że mnie zrozumiałeś.

0

Ktos cos poradzi?

0

No, ale to jest kwestia prostej arytmetyki przecież. Od numeru strony na której jesteś odejmujesz albo dodajesz 2 i masz zakres stron do wyrenderowania. Oczywiście musisz pilnować, żeby nie zejść poniżej 1 albo powyżej maksimum. Numer bieżącej strony masz w jakimś parametrze w query stringu i tyle.

0

Tylko pozostaje kwestia tego, że w niektórych przypadkach może np zwrócić tyko 3 strony i wtedy na dole strony będą 3 buttony ze stronami 1,2,3. A czasami może zwrócić 5 stron i już na dole strony będzie 5 buttonów ze stronami 1,2,3,4,5. W przypadku powyżej 5 stron na starcie i tak ma wyświetlać się 5 buttonów na dole strony z numerami 1,2,3,4,5.

0

Nadal nie wiem jak to do końca zrobić. Bo czasami też przecież nie będzie wcale paginacji jeśli zostanie zwróconych mało rekordów i wtedy nie będzie buttonów z paginacją na dole strony. Nie mam pojęcia jak to zrobić aby dodawać odpowiednią ilość buttonów (stron) na dole stron za pomocą css i jQuery.

0

A nie chcesz skorzystać z istniejących rozwiązań? https://datatables.net/

0

@somekind ci już napisał, że to kwestia arytmetyki. Masz takie dane:

  • numer aktualnej strony
  • rozmiar strony
  • liczba wszystkich elementów.

Na ich podstawie jesteś w stanie stwierdzić ile jest stron w sumie: LiczbaElementów/RozmiarStrony + zaokrąglenie wartości w góre. Stąd też wiesz, jakie buttony wyrenderować, bo masz informacje na której stronie jesteś.

0

Łatwiej by było, gdybyś pokazał kod, który już masz. Raczej nikt nie będzie pisał za Ciebie od zera.

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