52 votes

Grilles de radiomessagerie et de tri avec ASP.Net MVC

Je suis nouveau sur MVC, et ne suis pas la suite comment vous pouvez faire de la pagination et de tri sur une grille. Je suis habitué à l'aide de la asp.Net contrôle GridView avec un ObjectDataSource relevé des objets de notre couche de gestion - et dans ce cas, le système gère l'ensemble de la pagination et de tri en utilisant les méthodes que nos ORM génère sur les objets.

J'ai regardé à l'aide de la même ORM avec MVC - et c'est bien là - je viens de boucle à travers les collections de construire le tableau de la page - mais sans l'ODS pour gérer la pagination et de tri, je suis confus de ce que je pourrais gérer cela. Aurais-je un contrôleur séparé pour la pagination et le tri? Je ne suis pas sûr de ce que les meilleures pratiques pour ce scénario, donc si quelqu'un peut me pointer dans la bonne direction, il serait très apprécié.

Edit:

Ok, donc, je comprends que j'ai besoin de rouler mes propres - mais où dois-je commencer? J'ai créé un CustomerController, et une vue qui affiche une table de clients qui ressemble comme ci-dessous - et je tiens à trier Prénom ou Nom des colonnes. Mon Modèle a une méthode sort() qui va prendre de la chaîne de l'expression de tri dans le format qui sera utilisé par un GridView/ODS paire. Aurais-je créer une nouvelle Action sur mon CustomerController appelé Tri, et de mettre un ActionLink dans ma tête?

    <table>
    <tr>
        <th>
            First Name
        </th>
        <th>
            Last Name
        </th>
    </tr>
    <% foreach (var item in Model)
       { %>
    <tr>
        <td>
            <%= Html.Encode(item.FirstName) %>
        </td>
        <td>
            <%= Html.Encode(item.LastName) %>
        </td>
    </tr>
    <% } %>
</table>

38voto

Matthijs Wessels Points 2225

aujourd'hui, MVC 3 a maintenant un webGrid hors de la boîte. Je sais que cette question est d'une tout à l'heure, mais j'ai fini sur elle lors de la recherche de quelque chose à propos de webGrid. J'ai donc pensé qu'il devrait avoir une réponse de mentionner la nouvelle webGrid.

Voici quelques messages sur la façon de l'utiliser:

http://www.dotnetcurry.com/ShowArticle.aspx?ID=615

http://cnug.co.in/blogs/shijuv/archive/2010/10/08/using-the-webgrid-helper-in-asp-net-mvc-3-beta.aspx

http://www.nickharris.net/tag/webgrid/

Il prend en charge le tri, la pagination et aussi quelques Ajax choses. Il peut faire beaucoup pour vous, mais vous pouvez également spécifier chaque colonne séparée séparément.

29voto

Morph Points 1183

Vous pouvez utiliser le même contrôleur, ajoutez simplement un paramètre supplémentaire et nommez-le sort. Ensuite, vérifiez dans le contrôleur le type de valeur et triez vos données en fonction de ce paramètre.

Ou si vous voulez faire quelque chose du côté client, vous pouvez utiliser quelque chose comme tablesorter , un plugin pour jquery.

9voto

Brian Behm Points 2324

Il y a des extensions et des HTML Helpers disponibles pour cela, mais oui, il s'agit en grande partie de "roll-your-own".

Voici un exemple ...

http://blogs.taiga.nl/martijn/2008/08/27/paging-with-aspnet-mvc/

[http://blogs.taiga.nl/martijn/archive/2008/08/27/paging-with-asp.net-mvc.aspx]

4voto

DavidGouge Points 2761

3voto

Nick Berardi Points 31361

Avec MVC, vous devez en quelque sorte lancer votre propre tri, votre pagination, etc. Je suggérerais YUI DataTable ou certaines des autres grilles JavaScript.

De plus, si vous pensez que vous faites un travail important dans la grille de données, vous voudrez peut-être jeter un coup d'œil à ASP.NET Dynamic Data, elle est spécialement conçue pour ces types d'interactions avec les ORM.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X