Griglie di cercapersone e ordinamento con ASP.Net MVC

Sono nuovo di MVC, e non sto seguendo come si farebbe il paging e l’ordinamento su una griglia. Sono abituato ad usare il controllo asp.Net GridView con ObjectDataSource puntato sugli oggetti nel nostro livello aziendale – e in tal caso l’ODS gestisce tutto il paging e l’ordinamento usando i metodi che il nostro ORM genera sugli oggetti.

Ho cercato di usare lo stesso ORM con MVC – e le cose vanno bene lì – ho appena fatto un giro attraverso le collezioni per build il tavolo sulla pagina – ma senza l’ODS per gestire il paging e l’ordinamento, sono confuso da come gestirlo. Avrei un controller separato per il paging e l’ordinamento?

Capisco che ho bisogno di rotolare da solo – ma da dove comincio? Ho creato un CustomerController e una vista che mostra una tabella di clienti che assomiglia di seguito – e voglio ordinare le colonne FirstName o LastName. Il mio modello ha un metodo Sort () su di esso che prenderà un’espressione di ordinamento stringa nel formato che verrebbe utilizzato da una coppia GridView / ODS. Dovrei creare una nuova azione sul mio CustomerController chiamata Sort e inserire un link di azione nella mia intestazione?

First Name Last Name

    Puoi utilizzare lo stesso controller, aggiungere un parametro aggiuntivo e assegnargli un nome. Quindi controlla nel controller quale valore ha l’ordinamento e ordina i tuoi dati in base a quel parametro.

    O se vuoi fare cose sul lato client, puoi usare qualcosa come tablesorter , un plugin per jquery.

    al giorno d’oggi MVC 3 ora ha un webGrid fuori dalla scatola. So che questa domanda è da un po ‘di tempo fa, ma ho finito per cercare qualcosa su webGrid. Così ho pensato che dovrebbe avere una risposta che menziona il nuovo webGrid.

    Ecco alcuni buoni post su come usarlo:

    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/

    Supporta l’ordinamento, il paging e anche alcune cose Ajax. Può già fare molto per te, ma puoi anche specificare separatamente ogni colonna separata.

    Aggiornare:
    Ci sono anche molte librerie JavaScript disponibili che possono fare la tabella per te. Personalmente mi piace usare DataTable . Puoi nutrirlo con una tabella html esistente generata sul server o dargli un endpoint dove può recuperare i dati (tutti o solo una pagina).

    Ce ne sono molte altre, solo Google in giro.

    Con MVC devi essere in grado di eseguire il tuo ordinamento, il paging, ecc. Suggerirei YUI DataTable o alcune altre griglie JavaScript là fuori.

    Inoltre, se ci si trova a fare lavori pesanti con la griglia dati, si consiglia di dare un’occhiata ai dati dinamici di ASP.NET, è specificamente progettato per questi tipi di interazioni con gli ORM.

    Primo utilizzo di jQuery . jQuery è tuo amico. Quindi usa questo fantastico e probabilmente il miglior controllo Grid per jQuery jqGrid .

    Nel tuo CustomerController crea un’azione chiamata CustomerData. Tutte le interazioni con la griglia dovrebbero puntare a questa azione.

    Vai qui per un sacco di esempi su come usare jqGrid.

    Abbiamo usato il controllo lato client JqxGrid da JqWidgets e siamo rimasti molto soddisfatti delle sue prestazioni legate all’enorme numero di record, oltre al paging, al filtraggio e all’ordinamento integrato all’interno. Ecco un esempio di associazione in ASP.Net MVC