Tabla de Datos


Ocultar Columnas   







ID NOMBRE GUID1 GUID2 GUID3 GUID4 camponuevo
1 NOMBRE 5D87828B-8297-4D73-8E75-8A452EA9A839 D43BD6D9-9596-480C-9F81-BD7DB6F6A6BB 801EF33B-A223-4B54-A2F7-C9E9D4FDCE37 92B5B7F8-D998-4680-9D1F-017BBA3C9DD6
2 NOMBRE1 0897F27B-611D-4807-890A-C3C50E9386FE D759854C-F77F-4B22-839D-9720ACD6BBCE 8EF938E8-0919-49F2-954F-01AA764372E3 29AE1E0F-F46F-497D-A072-23FFFAB2AB8D
11 NOMBRE10 A4D3A2DC-9867-462E-A6AD-955B3B26B753 328EE2EB-66C8-4671-B167-01C205531318 E507F0E6-4936-4107-B146-72667FA45D28 12D87410-82BF-4B39-92C7-94B221E2E89C
12 NOMBRE11 F0288BAE-5EE1-4BA1-AC39-9E70CEB74298 C99254ED-68E6-49BF-A880-DD4EDB360CE3 6F9AE0E5-D8F6-483E-ACED-A10E758EDF76 B76164C4-F871-4DC7-A5EE-6550E4A91500
13 NOMBRE12 02DCD64E-F859-405E-A338-CBBC9DC5F10B 091BF0B4-CBAF-463C-9668-E59C23EA347F 2189B072-2E8F-4D28-939D-DBC69C6BBD65 DB6CAD68-1154-4D00-93DC-0E4B6BFE5B2F

1 a 5 de 100 registros


¿Qué es y Cómo funciona?

Este ejemplo muestra una habitual rejilla de datos en MVC 5 sin añadir ningún plugin adicional como MVC - WebGrid o componente externo (Telerik, jqGrid, DataTable, etc.) ni AJAX.

La tabla en Base de Datos contiene 100 registros con los siguientes campos:

  • ID (clave, int, autonumerico)
  • NOMBRE (nvarchar(50))
  • GUID1 (nvarchar(36))
  • GUID2 (nvarchar(36))
  • GUID3 (nvarchar(36))
  • GUID4 (nvarchar(36))
  • GUID5 (nvarchar(36))

Se puede seleccionar el numero de registros visibles por página entre varias opciones en el desplegable "Mostrar".

Podemos decidir las columnas que queremos mostrar en la tabla chequeando el desplegable "Columnas visibles".

Los datos se pueden ordenar por cualquier columna de ellas con un click en la cabecera. El siguiente click en la misma columna ordenará inversamente a la anterior ordenación.

Por ultimo los registros están paginados pudiendo navegar a otras páginas por número o "saltando" a la pagina posterior, anterior, última o primera.

 

Teoría

Mostrar datos en una tabla tiene en mi opinión varios puntos mínimos obligatorios:

  1. Los datos han de ser paginados y ordenados en BBDD ya sea por ADO.NET o por EF para optimizar el rendimiento de grandes volúmenes de información de forma que la respuesta del servidor a la pagina solo contenga los registros mostrados.
    Realizar estos filtro en cliente supondría devolver a la vista todos los registros de la tabla y si hay un número considerable tendremos problemas de memoria.
  2. Posibilidad de mostrar más o menos resultados por página.
  3. En cuanto a diseño la tabla debe ser responsiva, con 2 variaciones en dispositivos moviles:
    • Crear overflow en eje x como hace Bootstrap pudiendo opcionalmente mostrar u ocultar columnas.
    • Cambiar maquetación de registros mostrando las propiedades de forma vertical.
  4. Si realizamos la carga de registros submitando la pagina todos los parametros se muestran en la ruta pudiendo copiarla como una instántanea del estado de nuestro grid.
    Si realizamos la carga de registros por AJAX debemos recordar que no existirá una modificación en la ruta del navegador por lo que no se podrá guardar un estado del componente ni volver a uno anterior desde el navegador.

 

Configuración y Test

Se ha utilizado Visual Studio Express 2013 para Web y actualmente Visual Comunity 2015.
La programación se ha desarrollado con C#, Razor y acceso a Base de Datos por Entity Framework.

Las tablas mostradas en la aplicación se encuentran en un Microsoft® SQL Server® 2012 y actualmente en SQL de Azure

El alojamiento de las páginas se realizó en https://www.smarterasp.net con el plan .NET ADVANCE y actualmente se han movido a 2 Aplicaciones Web en Azure: una para este proyecto Web MVC y otra para un WCF usada en un ejemplo.

Se ha testeado con exito en diferentes navegadores y sistemas operativos, en pantallas de PC, tabletas y moviles.