2009-05-27 8 views
0

Je construis un site dans ASP.NET MVC. J'ai l'intention de reproduire la façon dont StackOverflow affiche ses messages. Ces types utilisent-ils un contrôle de répéteur dans ASP.NET MVC? Je veux un contrôle complet sur le balisage rendu, mais je veux aussi la pagination.Quel contrôle est utilisé sur StackOverflow pour afficher les messages?

Quelle est la meilleure approche dans un tel cas.

+0

Pourrait être un ListView, IMO. – Cerebrus

+0

Eh bien, nous pourrions probablement ignorer ce que l'équipe Atwood a fait, mais qu'en est-il du cas où j'ai besoin d'un contrôle de balisage complet et de pagination. Le répéteur ASP.NET normal n'est pas la seule option où je créerais ma propre logique de pagination. – theraneman

Répondre

1

Je ne sais pas comment StackOverflow l'implémente, mais vous n'avez pas besoin d'utiliser un contrôle asp.net.

Bien sûr, vous devriez construire votre propre téléavertisseur. Jetez un oeil au tutoriel NerdDinner, il a une section montrant comment vous pouvez créer une liste paginée. http://weblogs.asp.net/scottgu/archive/2009/04/28/free-asp-net-mvc-nerddinner-tutorial-now-in-html.aspx

C'est assez facile et vous avez un contrôle total sur tout le balisage. En fait, vous devez fournir tout le balisage, presque aucun balisage n'est généré par asp.net.

+0

Ahh. Je n'ai jamais atteint ce chapitre dans ce tutoriel. Je vais essayer ce que dit ce tutoriel. – theraneman

1

Dans MVC, je suggère d'utiliser une combinaison d'une requête LINQ dans votre contrôleur (ou dans un référentiel, dans une fonction appelée depuis le contrôleur), une boucle for dans votre vue et selon la complexité des éléments vous voulez afficher sont, une vue partielle à l'intérieur de la boucle.

Pour la pagination, vous pouvez transmettre des paramètres de début et de comptage à une fonction pour obtenir une section d'une liste d'objets via LINQ. Par exemple:

Function sliceList(ByVal startIndex As Integer, ByVal count As Integer) As Generic.List(Of myObject) 
    Dim FullObjectList As Generic.List(Of myObject) = GetObjectsFromSomewhere() 
    Dim returnList As New Generic.List(Of myObject) 
    returnList = From o In FullObjectList Skip startIndex Take count 
    Return returnList 
End Function 

Ensuite, votre contrôleur passe échange de la remise indiquée à vue pour l'affichage et la boucle vous à travers elle, l'affichage des articles mais vous plaît.

Espérons que cela aide.

Questions connexes