Iam cercando di applicare Impaginazione alla mia applicazione MVC. Iam usando stoccaggio tavolo AzureAggiungi Impaginazione MVC e Azure tabella
Ecco che cosa ho provato: -
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;
}
Controller: -
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);
}
questo momento mi dà i primi 3 voci da miei dati. Ora, come posso mostrare e implementare "Precedente" e "Successivo" per mostrare il resto delle voci nella pagina successiva? Come posso implementare il resto del controller e della pagina HTML?
Qualsiasi aiuto è apprezzato.
Grazie per la risposta. Iam abbastanza nuovo a questo concetto. Potete spiegarmelo per favore con un esempio? – HappyCode1990
Aggiornato la mia risposta con codice di esempio. Per favore dai un'occhiata. HTH. –
Va notato che questa soluzione non funzionerà sempre come speri. Se la query impiega più di 5 secondi per l'esecuzione, otterrai un risultato con meno dei risultati massimi E un token di continuazione. Ho una soluzione simile implementata nella mia applicazione e talvolta ottengo pagine vuote e devo premere "Avanti" più volte per arrivare ai primi risultati. – Mike