asp.net - route - tag helpers asp net core
Paginación y clasificación de cuadrículas con ASP.Net MVC (5)
Con MVC, tiene que lanzar su propia clasificación, paginación, etc. Sugeriría YUI DataTable o alguna de las otras Grid de JavaScript.
Además, si observa que su trabajo de grilla de datos es pesado, es recomendable que consulte los datos dinámicos de ASP.NET, que están específicamente diseñados para este tipo de interacciones con los de ORM.
Soy nuevo en MVC, y no estoy siguiendo cómo harías paginación y clasificación en una grilla. Estoy acostumbrado a usar el control asp.Net GridView con ObjectDataSource apuntando a los objetos en nuestra capa de negocios, y en ese caso el ODS maneja todas las paginación y clasificación usando los métodos que nuestro ORM genera en los objetos.
He analizado el uso del mismo ORM con MVC, y las cosas funcionan bien allí, simplemente recorro las colecciones para construir la tabla en la página, pero sin el ODS para manejar la paginación y clasificación, estoy confundido en cuanto a cómo manejaría eso. ¿Tendría un controlador por separado para la paginación y la clasificación?
Entiendo que tengo que hacer mi propio pero, ¿por dónde empiezo? Creé un CustomerController y una vista que muestra una tabla de clientes que se ve a continuación y quiero ordenar las columnas FirstName o LastName. Mi modelo tiene un método Sort () que tomará una expresión de ordenación de cadenas en el formato que usaría un par de GridView / ODS. ¿Crearía una nueva Acción en mi CustomerController llamada Sort, y pondría un ActionLink en mi encabezado?
<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>
Primero use jQuery . jQuery es tu amigo. A continuación, utilice este impresionante y probablemente el mejor control de cuadrícula para jQuery jqGrid .
En su CustomerController, cree una acción llamada CustomerData. Toda interacción con la Grilla debe apuntar a esta acción.
Vaya here para ver ejemplos de cómo usar jqGrid.
Puede usar el mismo controlador, simplemente agregue un parámetro adicional y nómbrelo ordenar. Luego, verifique en el controlador qué clase de valor tiene, y ordene sus datos según ese parámetro.
O si desea hacer cosas del lado del cliente, puede usar algo como tablesorter , un complemento para jquery.
hoy en día MVC 3 ahora tiene un webGrid fuera de la caja. Sé que esta pregunta es de hace un tiempo, pero terminé cuando busqué algo sobre webGrid. Así que pensé que debería tener una respuesta mencionando el nuevo webGrid.
Aquí hay algunas buenas publicaciones sobre cómo usarlo:
http://www.dotnetcurry.com/ShowArticle.aspx?ID=615
http://www.nickharris.net/tag/webgrid/
Es compatible con clasificación, paginación y también algunas cosas de Ajax. Ya puede hacer mucho por usted, pero también puede especificar cada columna por separado.
Actualizar:
También hay muchas bibliotecas de JavaScript disponibles que pueden hacer la tabla por usted. Personalmente me gusta usar DataTables . Puede alimentarlo con una tabla html existente generada en el servidor o darle un punto final donde pueda recuperar los datos (todos o solo una página).
Hay muchos más, solo busca en Google.