¡Tantos controles diferentes para elegir! ¿Cuáles son las mejores prácticas para determinar qué control usar para mostrar datos en ASP.NET?
asp.net
user-interface
mattruma
fuente
fuente
Respuestas:
Realmente se trata de lo que intentas lograr
Gridview: de diseño limitado, funciona como una tabla html. Más funciones integradas como editar / actualizar, página, ordenar. Mucha sobrecarga.
DataGrid: versión antigua de Gridview. Una vista de cuadrícula es una súper cuadrícula de datos.
Datalist: versión más personalizable de Gridview. También tiene algunos gastos generales. Más trabajo manual ya que tienes que diseñarlo tú mismo.
ListView: el nuevo Datalist :). Casi un híbrido de la lista de datos y la vista de cuadrícula donde puede usar la paginación y compilar en la funcionalidad de Gridview, pero tiene la libertad de diseño. Uno de los nuevos controles de esta familia
Repetidor - Peso muy ligero. Sin funcionalidad incorporada como encabezados, pies de página. Tiene menos gastos generales.
fuente
Todos los demás lo golpearon: depende.
Ahora, para una guía específica (ampliando la excelente respuesta de WebDude anterior) ...
¿Su diseño encaja en una hoja de cálculo natural o en una vista de cuadrícula de los datos? Vista en cuadrícula .
¿Necesita mostrar una lista u otra vista formateada de datos, posiblemente con encabezados y pies de página, y probablemente con controles específicos y / o formato para cada registro de datos? (EG, enlaces personalizados, posiblemente LinkButtons, o controles de edición específicas?) ¿Esta pantalla específicamente no encaja forma natural en una hoja de cálculo o en una vista de cuadrícula? Vista de la lista
Si cumple con todos los criterios de ListView, pero naturalmente encajaría en una cuadrícula, puede considerar DataList .
Voy por repetidor cuando sólo necesito algunos datos básicos iterados con algunos bits de diseño personalizado, sin cabeceras, pies de página hay, agradable y limpio.
fuente
Vista de marcado
Declarar el siguiente código de muestra es posible para los 3 (ListView, DataList, Repeater)
en las siguientes listas Puedes ver las plantillas y opciones disponibles para cada una de ellas y ver las diferencias por ti mismo
ListView (tenga en cuenta la edición, el grupo, la inserción, el diseño)
DataList (tenga en cuenta los pares de estilos)
Reloj de repetición
Vista de código (vista avanzada)
CompositeDataBoundControl :
mire la siguiente jerarquía de clases (y controles relacionados).
estos controles alojan otros controles asp.net en sus plantillas para mostrar datos vinculados al usuario
Algunas descripciones para mejores aclaraciones
El control ListView
El control ListView también usa plantillas para la visualización de datos. Sin embargo, admite muchas plantillas adicionales que permiten más escenarios al trabajar con sus datos. Estas plantillas incluyen LayoutTemplate, GroupTemplate, ItemSeparatorTemplate .
El control ListView (a diferencia de DataList y Repeater ) también admite implícitamente la capacidad de editar, insertar y eliminar datos mediante un control de origen de datos. Puede definir plantillas individuales para cada uno de estos escenarios.
El control DataList
El control DataList funciona como el control Repeater . Repite datos para cada fila de su conjunto de datos y muestra estos datos de acuerdo con su plantilla definida. Sin embargo , presenta los datos definidos en la plantilla dentro de varias estructuras HTML. Esto incluye opciones para el diseño horizontal o vertical, y también le permite establecer cómo se deben repetir los datos, como diseño de flujo o tabla.
El control DataList no usa automáticamente un control de fuente de datos para editar datos. En cambio, proporciona eventos de comando en los que puede escribir su propio código para estos escenarios. Para habilitar estos eventos, agregue un control de botón a una de las plantillas y establezca la propiedad CommandName del botón en la palabra clave editar, eliminar, actualizar o cancelar. A continuación, el control DataList genera el evento apropiado.
El control del repetidor
El control Repeater también usa plantillas para definir enlaces personalizados. Sin embargo, no muestra datos como registros individuales. En su lugar, repite las filas de datos como especificas en tu plantilla. Esto le permite crear una sola fila de datos y hacer que se repita en su página.
El control Repeater es una plantilla de solo lectura . Es decir, solo admite ItemTemplate. No admite implícitamente la edición, inserción y eliminación. Debería considerar uno de los otros controles si necesita esta funcionalidad; de lo contrario , tendrá que codificarlo usted mismo para el control Repeater.
Las descripciones anteriores son del libro MCTS Exam 70-515 Desarrollo de aplicaciones web con Microsoft.NET Framework 4 .
DataGrid ni siquiera se menciona en este libro y es reemplazado por GridViews populares y respondido amablemente por otros usuarios
fuente
¡En efecto! He escrito en un blog sobre las diferencias entre las herramientas de datos ASP.NET 4.0 . Básicamente, las vistas de cuadrícula son la forma más poderosa de presentar información tabular, mientras que los controles ListView son para pantallas más complicadas de datos repetidos. Si estuviera dando un consejo a un novato de ASP.NET, le diría que aprenda las vistas de cuadrícula de adentro hacia afuera e ignore los otros controles para empezar.
fuente
Todo se reduce a cómo desea distribuir sus datos.
Si necesita controlar el diseño (como tablas versus CSS versus lo que sea), use un Repeater o ListView. Entre los dos, ListView le ofrece muchos más eventos y comandos integrados para editar, seleccionar e insertar. Además, funcionalidad de paginación y agrupación. Un repetidor es extremadamente simple, repite un diseño con los datos. Dado que está creando el diseño a mano, Listview y Repeater requieren más código.
GridView es un DataGrid actualizado, por lo que casi no hay razón para usar DataGrid. GridView funciona muy bien cuando se conecta a fuentes de datos ASP.NET estándar, pero lo restringe a un diseño tabular con muchas reglas de diseño. GridView requiere menos código ya que está usando un diseño integrado.
fuente