2010-12-15 62 views
2

je l'utilise comme ceci:MVC contrib pager

<%= Html.Pager((IPagination)Model) %> 

Est-ce il y a moyen simple de changer l'url rendu. J'ai cherché plus de documentation mais je n'ai pas trouvé grand-chose.

+0

Que voulez-vous faire? – Lorenzo

+0

Mon problème est que j'ai une grille dans une vue Index pour un contrôleur et que le bit d'action est avalé. Cela fonctionne correctement pour les autres vues, mais pas pour les vues d'index. J'ai donc pensé pouvoir forcer la création du bit d'action pour générer l'URL correcte. – cs0815

+0

J'ai essayé <% = Html.Pager ((IPagination) Modèle) .Link (currentPage => Url.Action ("Index", nouveau { page = currentPage })) %> mais le bit d'index est swalloed. Si j'utilise "Bla" au lieu de "Index", l'URL est générée. Pourquoi est-ce? Merci. – cs0815

Répondre

9

Que voulez-vous changer exactement?

Voici comment je change l'URL:

Html.Pager(Model.AssetsPagedList) 
     .First("First") 
     .Last("Last") 
     .Next("Next") 
     .Previous("Previous") 
      .Link(currentPage => Url.Action("Browse", new { 
      page = currentPage, 
      searchTerm = Model.SearchModel.SearchTerm, 
      excludedWords = Model.SearchModel.ExcludedWords, 
      minPrice = Model.SearchModel.MinPrice, 
      maxPrice = Model.SearchModel.MaxPrice, 
      locationId = Model.SearchModel.LocationId, 
      catalogId = Model.SearchModel.CatalogId 
     })) 

Vous pouvez aussi créer quelque chose comme un assistant ceci:

public static Pager Pager(this HtmlHelper helper, IPagination model, FormCollection formCollection) 
    { 
     // here you can use MvcContrib.UI.Pager.PaginationExtensions.Pager static methods 
     // or create MvcContrib.Pagination.Pager class directly 
    } 
+0

J'ai essayé <% = Html.Pager ((IPagination) Modèle) .Link (currentPage => Url.Action ("Index", nouvelle {page = currentPage}))%> mais le bit d'index est swalloed. Si j'utilise "Bla" au lieu de "Index", l'URL est générée. Pourquoi est-ce? Merci. – cs0815

+0

Aucune idée. Vous pouvez télécharger la source, la construire et utiliser le débogueur si vous voulez le comprendre. Le code n'est pas compliqué. – rboarman

+0

Pour moi cela ne fonctionne pas, parce que maintenant la page est la même pour la prochaine (page = 1) et précédente (page = 1). Vous devez les distinguer entre eux dans le délégué Link, mais vous ne pouvez pas le faire. Ai-je manqué quelque chose? – Rookian

1

Cela dépend vraiment de ce que vous voulez changer.

Dans l'exemple suivant, je suis en train de changer les liens de pagination à utiliser ajax

$("#addressListPlaceholder .paginationRight a").click(function (event) { 
    event.preventDefault(); 
    $.ajax({ 
     type: "get", 
     dataType: "html", 
     url: this.href, 
     data: {}, 
     success: function (response) { 
      $("#addressListPlaceholder").html('').html(response); 
     } 
    }); 
});