Domanda

Sono nuovo di MVC, e non sto seguendo come si farebbe di paging e l'ordinamento su una griglia. Sono abituato a utilizzare il controllo GridView asp.Net con un ObjectDataSource puntato verso oggetti nel nostro livello di business - e in tal caso l'ODS gestisce tutto il paging e l'ordinamento utilizzando i metodi che il nostro ORM genera sugli oggetti

Ho guardato con la stessa ORM con MVC - e le cose funzionano bene lì - ho appena ciclo attraverso le collezioni per la costruzione della tabella della pagina - ma senza i ODS per gestire la paginazione e l'ordinamento, io sono confuso su come avrei gestire questo. Avrei un controller separato per la paginazione e l'ordinamento?

ho capito che ho bisogno di rotolare il mio - ma da dove si comincia? Ho creato un CustomerController, e una vista che visualizza una tabella di clienti che si presenta come di seguito - e voglio ordinare le colonne FirstName o LastName. Il mio modello ha un metodo sort () su di esso che prendo un'espressione stringa sorta nel formato che sarebbe stato utilizzato da una coppia GridView / ODS. Dovrei creare una nuova azione sul mio CustomerController chiamato Ordina, e porre ActionLink nel mio header?

    <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>
È stato utile?

Soluzione

Il tuo grado di utilizzare lo stesso controller, basta aggiungere un ulteriore parametro e denominarlo sorta. Poi il check-in del controller quale valore tipo ha, e ordinare i dati in base a tale parametro.

In alternativa, se si vuole fare le cose sul lato client, è possibile utilizzare qualcosa come tablesorter , un plugin per jquery.

Altri suggerimenti

al giorno d'oggi MVC 3 ha ora una WebGrid fuori dalla scatola. So che questa domanda è da qualche tempo fa, ma ho finito su di esso quando alla ricerca di qualcosa su WebGrid. Così ho pensato che dovrebbe avere una risposta menzionare la nuova WebGrid.

Ecco alcuni buoni messaggi 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. Si può fare molto per voi già, ma è anche possibile specificare ogni colonna separata separatamente.

Aggiornamento:
Ci sono anche molte librerie JavaScript disponibili che possono fare il tavolo per voi. Personalmente mi piace usare DataTable . È possibile alimentarlo una tabella HTML esistente generato sul server o dargli un endpoint dove può recuperare i dati (tutti o solo una pagina).

Ci sono un sacco di più, solo Google in giro.

Con MVC si ordina di avere a rotolare il proprio ordinamento, il paging, ecc vorrei suggerire YUI DataTable o alcune delle altre reti JavaScript là fuori.

Anche se trovate la vostra auto facendo pesante lavoro di griglia di dati si consiglia di dare un'occhiata a ASP.NET Dynamic Data, è specificamente progettato per questi tipi di interazioni contro ORM.

Il primo utilizzo jQuery . jQuery è tuo amico. Quindi utilizzare questo fantastico e probabilmente il migliore controllo griglia per jQuery jqGrid .

Nel vostro CustomerController creare un'azione denominata CustomerData. Tutte le interazioni con la rete deve puntare a questa azione.

qui per le tonnellate di esempi su come utilizzare jqGrid.

Abbiamo utilizzato client JqxGrid controllo laterale da JqWidgets e molto soddisfatti del suo rendimento legato al numero enorme di record insieme paging, filtraggio, ordinamento integrato all'interno. Qui è un esempio di legame entro ASP.Net MVC

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top