2010-12-01 9 views
4

Je travaille sur this échantillon et j'ai rencontré un problème. Pour implémenter la pagination, l'exemple étend la liste et ajoute la pagination. Cette liste est ensuite utilisée comme modèle. À mon avis, je veux ajouter un contrôle de pagination. Dans l'exemple, ils l'ajoutent simplement à la page mais je veux en faire un contrôle utilisateur car je prévois d'implémenter la pagination sur plusieurs pages. Bien sûr Off Ce doit être une vue fortement typé, mais puisque je ne peux pas utiliser des caractères génériques en C# Je ne peux pas mettre en œuvre comme ceci:comment implémenter une vue partielle avec l'inférence de type générique

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<PaginatedList<?>>" %> 

Comme je prévois que d'utiliser les membres déclarés dans PaginatedList et non List Je n'ai pas besoin du type.

Dans une méthode C# nous pourrions résoudre ce problème avec l'inférence de type, mais comment est-il don dans une vue partielle?

Répondre

3

Définissez une interface contenant les propriétés de pagination que vous souhaitez utiliser dans votre vue partielle. Demandez à votre classe PaginatedList<T> d'implémenter cette interface. Avoir votre vue partielle être tapé à l'interface.

public interface IPaginated 
{ 
    int PageIndex { get; } 
    int PageSize { get; } 
    int TotalCount { get; } 
    int TotalPages { get; } 
} 

public class PaginatedList<T> : List<T>, IPaginated 
{ 
    ... should not need to change ... 
} 

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IPaginated>" %> 
+0

Merci beaucoup, j'aurais dû le savoir. – Jan

Questions connexes