2009-06-08 13 views
2

Est-il possible de créer un pager "générique" (ASCX UserControl) qui peut être utilisé avec différentes grilles sur des pages différentes pour contrôler la pagination? Alors que j'ai juste besoin de le rendre en utilisant RenderPartial.C# MVC: Pager générique/réutilisable (pour différentes grilles dans différentes pages)

Je travaille actuellement sur une grille "Contacts", qui nécessite des fonctionnalités de pagination, mais je devrai réutiliser la pagination plus tard, je me suis donc demandé si je pouvais en faire un contrôle partiel partagé. Un problème auquel je peux penser maintenant: Comment contrôler le lien AJAX lorsque je clique sur l'un des numéros de téléavertisseur, car cela doit être différent s'il s'agit d'une autre grille?

Répondre

1

Vous pouvez créer un objet PagerViewModel, avec les propriétés suivantes:

public PagerViewModel 
{ 
    public string Controller { get; set; } 
    public int StartPage { get; set; } 
    public int EndPage { get; set; } 
} 

Et créer une vue partielle Pager.ascx comme suit:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<PagerViewModel>" %> 
<% for(int i = Model.StartPage; i <= Model.EndPage; i++) { %> 
<a href="<%= ViewData.Model.Controller %>/Page/<%= i %>"><%= i %></a> 
<% } %> 

Je pense que vous pouvez comprendre comment l'utiliser; -)

Questions connexes