2010-05-21 11 views
4

J'ai implémenté un helper paging html (adapté du livre de Steven Sanderson). Voici le code actuel:assistant de pagination asp.net mvc

pagelinks à cordes statiques publics (ce HtmlHelper html, int currentPage, int TotalPages, Func PAGEURL) { StringBuilder result = new StringBuilder();

 for (int i = 1; i <= totalPages; i++) 
     { 
      TagBuilder tag = new TagBuilder("a"); 
      tag.MergeAttribute("href", pageUrl(i)); 
      tag.InnerHtml = i.ToString(); 
      if (i == currentPage) 
       tag.AddCssClass("selectedPage"); 
      result.AppendLine(tag.ToString()); 
     } 

     return result.ToString(); 
    } 

Cela produit un tas de liens vers chaque page de mes articles. S'il y a beaucoup de pages cela peut être un peu écrasant. Je cherche une implémentation similaire qui produit quelque chose de moins écrasante comme ceci:

où 6 est la page en cours. Je suis sûr que quelqu'un doit avoir mis en place quelque chose de similaire ... avant de devoir ré-implémenter la roue.

Merci.

Christian

+0

désolé je ne suis arrivé à regarder cela aujourd'hui - acceptera votre réponse dès que possible. les deux réponses semblent être bonnes, donc je ne sais pas quoi faire. – cs0815

Répondre

2

Il y a un pager helper dans MVCContrib.

+0

On dirait bien merci. J'avais l'habitude d'utiliser le jqgrid mais essaye d'éviter le javascript discret autant que possible pour le moment. Êtes-vous, par hasard, au courant d'une «grille mvc» comme celle-ci qui permet également le tri et le filtrage? Merci. – cs0815

+0

MVCContrib Grid supporte le tri: http://www.jeremyskinner.co.uk/2010/03/14/mvccontrib-grid-part-6-sorting/ –

+0

J'ai des problèmes avec ce bit: <% = Html.Pager ((IPagination) Model)%> quand je compile il se plaint qu'il ne peut pas trouver le téléavertisseur html. Est-ce juste un problème d'importation? J'utilise: <% @ Import Namespace = "MvcContrib.UI.Grid"%> <% @ Importer l'espace de noms = "MvcContrib.Pagination"%> – cs0815