Mam pytanie, jak się powinno poprawnie zaimplementować dynamiczną paginacje i filtrowanie danych.
Powiedzmy, że w UI wyświetlam tabele z użytkownikami a na jednej stronie mogę wyświetlić max 3 osoby, co da mi 4 strony.
page1 -> u1, u2, u3
page2 -> u4, u5, u6
page3 -> u7, u8, u9
page4 -> u10
Na obecną chwilę robię to tak, że poniżej tabelki mam pagination component i kiedy klikam np. na trzecią stronę wysyłam request do api, który zwraca mi tylko użytkowników z wybranej strony.
class UserQueries
{
public IEnumerable<UserDto> Get(int page = 1)
{
return Users.
Skip((page - 1) * itemsPerPage)
Take(itemsPerPage);
}
}
Teraz muszę dodać do tabeli pole z dynamicznym wyszukiwaniem (filtrowaniem), ma to działać podobnie jak wyszukiwarka google czyli np. wpiszę pierwsze 2 litery imienia [ma]
i chcę żeby w tabeli bez odświeżania strony, w czasie rzeczywistym, dynamicznie wyświetlili mi się tylko użytkownicy, których imię zaczyna się na Ma.
Do tej pory state
z react przechowywał tylko widoczne elementy tabeli - 3 użytkowników ale, żeby filtrować wyniki wydaje mi się, że potrzebuję mieć dostęp do wszystkich użytkowników z bazy danych, jak to zrobić optymalnie?
- pobieram wszystkich użytkowników z bazy i dynamicznie filtruję, robię paginację już we froncie?
- po każdym znaku wpisanym przez użytkownika wysyłam zapytanie do api?
- jest jakiś inny sposób na zrobienie dynamicznego filtrowania?