Próbuję zastosować paginację do mojej aplikacji MVC. Iam użyciu Azure przechowywanie tabeliDodawanie tabelarycznego przechowywania tabel MVC i Azure
Oto co próbowałem: -
public List<T> GetPagination(string partitionKey, int start, int take)
{
List<T> entities = new List<T>();
TableQuery<T> query = new TableQuery<T>().Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, partitionKey.ToLower()));
entities = Table.ExecuteQuery(query).Skip(start).Take(take).ToList();
return entities;
}
Kontroler: -
public ActionResult Index()
{
key= System.Web.HttpContext.Current.Request[Constants.Key];
if (String.IsNullOrEmpty(key))
return RedirectToAction("NoContext", "Error");
var items= _StorageHelper.GetPagination(key,0,3);
ItemCollection itemCollection = new ItemCollection();
itemCollection .Items= Mapper.Map<List<ItemChart>, List<ItemModel>>(items);
itemCollection .Items.ForEach(g => g.Object = g.Object.Replace(key, ""));
return View(itemCollection);
}
to obecnie daje mi 3 pierwsze wpisy z moimi danymi. Jak mogę teraz pokazać i zaimplementować "Poprzedni" i "Następny", aby wyświetlić pozostałe wpisy na następnej stronie? Jak zaimplementować resztę kontrolera i stronę HTML?
Każda pomoc jest doceniana.
Dziękuję za odpowiedź. Jestem całkiem nowy w tej koncepcji. Czy możesz mi wyjaśnić to na przykładzie? – HappyCode1990
Zaktualizowałem moją odpowiedź za pomocą przykładowego kodu. Proszę spojrzeć. HTH. –
Należy zauważyć, że to rozwiązanie nie zawsze działa tak, jak masz nadzieję. Jeśli zapytanie trwa dłużej niż 5 sekund, otrzymasz wynik mniejszy niż maksymalny wynik ORAZ znacznik kontynuacji. Mam podobne rozwiązanie zaimplementowane w mojej aplikacji i czasami dostaję puste strony i muszę kilkakrotnie nacisnąć "Dalej", aby uzyskać pierwsze wyniki. – Mike