Compartir a través de


Tutorial: Crear páginas Web principal-detalle en Visual Studio

Actualización: noviembre 2007

En muchas páginas Web los datos se muestran de más de una manera, mostrando a menudo los datos de las tablas relacionadas. En este tutorial se muestran las distintas maneras de trabajar con datos en varios controles y de varias tablas, incluidos los que tienen una relación principal-detalle. Las tareas ilustradas en este tutorial incluyen:

  • Rellenar una lista desplegable con datos de la base de datos.

  • Crear filtros: instrucciones SQL con una cláusula WHERE (consultas parametrizadas).

  • Mostrar datos filtrados en función de la selección del usuario en una lista desplegable.

  • Mostrar detalles sobre un registro seleccionado utilizando el control DetailsView.

  • Seleccionar un registro de una página y mostrar un registro relacionado de otra página.

Requisitos previos

Para poder completar este tutorial, necesitará:

  • Obtener acceso a la base de datos Northwind de SQL Server. Para obtener información sobre cómo descargar e instalar la base de datos de ejemplo Northwind de SQL Server, vea Installing Sample Databases en el sitio Web de Microsoft SQL Server.

    Nota:

    Si necesita información sobre cómo iniciar sesión en el equipo en que se ejecuta SQL Server, póngase en contacto con el administrador del servidor.

  • Microsoft Data Access Components (MDAC) versión 2.7 o posterior.

    Si utiliza Microsoft Windows XP o Windows Server 2003, ya dispone de MDAC 2.7. Sin embargo, si utiliza Microsoft Windows 2000, quizás tenga que actualizar la versión de MDAC instalada en el equipo. Para obtener más información, vea el artículo "Microsoft Data Access Components (MDAC) Installation" en MSDN Library.

Crear el sitio Web

Si ya ha creado un sitio Web en Visual Web Developer (por ejemplo, mediante los pasos descritos en Tutorial: Crear una página Web básica en Visual Web Developer o en Tutorial: Acceso a datos básico en páginas Web), puede utilizar ese sitio Web y pasar a la siguiente sección referente a la conexión con SQL Server. En caso contrario, cree un sitio Web y una página nuevos siguiendo estos pasos.

Para crear un sitio Web del sistema de archivos

  1. Abra Visual Web Developer.

  2. En el menú Archivo, haga clic en Nuevositio Web.

    Aparece el cuadro de diálogo Nuevo sitio Web.

  3. En Plantillas instaladas de Visual Studio, haga clic en Sitio Web de ASP.NET.

  4. En el cuadro Ubicación, escriba el nombre de la carpeta dónde desea conservar las páginas de su sitio Web.

    Por ejemplo, escriba el nombre de carpeta C:\WebSites.

  5. En la lista Lenguaje, haga clic en el lenguaje de programación con el que prefiera trabajar.

  6. Haga clic en Aceptar.

    Visual Web Developer crea la carpeta y una nueva página denominada Default.aspx.

Conectar a SQL Server

Para trabajar con datos, necesita establecer una conexión a una base de datos. En este tutorial, creará una conexión, que es un proceso independiente del trabajo con páginas o controles Web.

Para crear una conexión con SQL Server

  1. Presione CTRL+ALT+S para mostrar el Explorador de base de datos. En el Explorador de base de datos, haga clic con el botón secundario en Conexiones de datos y elija Agregar conexión.

    Se muestra el cuadro de diálogo Cambiar origen de datos.

  2. En el cuadro de diálogo Cambiar origen de datos, seleccione Microsoft SQL Server y haga clic en Aceptar.

  3. En el cuadro de diálogo Agregar conexión, realice lo siguiente:

    • Especifique o seleccione el nombre del servidor SQL Server. Para un servidor ubicado en su equipo, escriba (local).

    • Seleccione Utilizar autenticación de SQL Server.

    • Escriba un nombre de usuario y una contraseña.

    • Seleccione Guardar mi contraseña.

    • Seleccione Northwind como la base de datos.

  4. Haga clic en Probar conexión y, cuando esté seguro de que funciona, haga clic en Aceptar.

    La conexión se agrega al Explorador de servidores.

Utilizar una lista desplegable como elemento principal

En esta parte del tutorial, agregará una lista desplegable a una página y la rellenará con una lista de categorías de la tabla Northwind. Cuando los usuarios seleccionen una categoría, la página mostrará los productos de esa categoría.

Para crear y rellenar una lista desplegable

  1. Abra o cambie a la página Default.aspx. Si está trabajando con un sitio Web que ya había creado, agregue o abra una página con la que pueda trabajar en este tutorial.

  2. Cambie a la vista Diseño.

  3. Escriba Seleccionar productos por categoría en la página y dé al texto formato de encabezado, utilizando la lista desplegable Formato del bloque que está sobre el Cuadro de herramientas.

  4. Desde el grupo Estándar del Cuadro de herramientas, arrastre un control DropDownList a la página.

  5. En las Tareas de DropDownList, active la casilla Habilitar AutoPostBack.

    Así se configura el control de forma que la página envíe los datos al servidor cada vez que se hace una selección en la lista, en lugar de esperar a que el usuario haga clic en un botón.

  6. En las Tareas de DropDownList, seleccione Elegir origen de datos.

    Se inicia el asistente Elegir origen de datos.

  7. En la lista Seleccionar un origen de datos , haga clic <Nuevo origen de datos>.

    Aparecerá el cuadro de diálogo Asistente para la configuración de orígenes de datos.

  8. Seleccione Base de datos.

    Así se especifica que desea obtener datos de una base de datos compatible con instrucciones SQL. (Incluye SQL Server y otras bases de datos compatibles con OLE-DB.)

    En el cuadro Especificar un id. para el origen de datos, aparecerá un nombre de control de origen de datos predeterminado (SqlDataSource1). Puede dejar este nombre.

  9. Haga clic en Aceptar.

    El asistente muestra la página Configurar origen de datos - SqlDataSource1 en la que puede seleccionar una conexión de datos.

  10. En la lista desplegable, seleccione la conexión Northwind que creó anteriormente en el tutorial.

  11. Haga clic en Siguiente.

    El asistente muestra una página donde se puede almacenar, si se desea, la cadena de conexión en el archivo de configuración.

  12. No olvide activar la casilla Sí, guardar esta conexión como y haga clic en Siguiente. (Puede dejar el nombre predeterminado de la cadena de conexión.)

    El asistente muestra una página donde se puede especificar los datos que se desea recuperar de la base de datos.

  13. De la lista Nombre de Opciones de tabla o vista, seleccione Categories.

  14. En el cuadro Columnas, seleccione CategoryID y CategoryName.

  15. Haga clic en Siguiente.

  16. Haga clic en Consulta de prueba para asegurarse de que obtiene los datos que desea.

  17. Haga clic en Finalizar.

    Se muestra el Asistente para la configuración de orígenes de datos, con el nombre del control de origen de datos ha configurado.

  18. En la lista Seleccionar un campo de datos para mostrar en la lista desplegable, seleccione CategoryName.

    Nota:

    Si no aparece ningún elemento en la lista, haga clic en el vínculo Actualizar esquema.

    Esto especifica que el valor del campo CategoryName se mostrará como texto del elemento en la lista desplegable.

  19. En la lista Seleccionar un campo de datos para el valor de la lista desplegable, seleccione CategoryID.

    Esto especifica que cuando se selecciona un elemento, el campo CategoryID se devolverá como el valor del elemento.

  20. Haga clic en Aceptar.

Antes de continuar, pruebe la lista desplegable.

Para probar la lista desplegable

  1. Presione CTRL+F5 para ejecutar la página.

  2. Cuando se muestre la página, examine la lista desplegable.

  3. Seleccione una categoría para estar seguro de que la lista realiza una devolución de datos.

    Ahora puede mostrar los productos de la categoría seleccionada en la lista desplegable.

Utilizar una cuadrícula para mostrar información de detalle

A continuación, puede ampliar la página para que incluya una cuadrícula. Cuando los usuarios realicen una selección en la lista desplegable de categorías, en la cuadrícula se mostrarán los productos de dicha categoría.

Para utilizar una cuadrícula para mostrar información de detalle

  1. Cambie a la página Default.aspx o ábrala (o la página con la que ha estado trabajando) y cambie a la vista Diseño.

  2. Desde el grupo Datos del Cuadro de herramientas, arrastre un control GridView a la página.

  3. En el menú Tareas de GridView, seleccione <Nuevo origen de datos> en la lista Elegir origen de datos.

    Se abrirá el Asistente para la configuración de orígenes de datos.

  4. Seleccione Base de datos.

    En el cuadro Especificar un id. para el origen de datos, aparecerá un nombre de control de origen de datos predeterminado (SqlDataSource2). Puede dejar este nombre.

  5. Haga clic en Aceptar.

    El asistente muestra una página donde puede seleccionar una conexión.

  6. En la lista desplegable de conexiones, seleccione la conexión que creó y almacenó anteriormente en el tutorial (NorthwindConnectionString).

  7. Haga clic en Siguiente.

    El asistente muestra la página Configurar origen de datos - SqlDataSource2, en la que puede crear una instrucción SQL.

  8. En la lista Nombre, seleccione Productos.

  9. En el cuadro Columnas, seleccione ProductID, ProductName y CategoryID.

  10. Haga clic en WHERE.

    Aparecerá el cuadro de diálogo Agregar cláusula WHERE.

  11. En la lista Columna, seleccione CategoryID.

  12. En la lista Operador, seleccione =.

  13. En la lista Origen, seleccione Control.

  14. En Propiedades del parámetro, en la lista Id. de control, seleccione DropDownList1.

    Con los últimos dos pasos se especifica que la consulta obtendrá el valor de búsqueda del Id. de categoría del control DropDownList que agregó anteriormente.

  15. Haga clic en Agregar.

  16. Haga clic en Aceptar para cerrar el cuadro de diálogo Agregar cláusula WHERE.

  17. Haga clic en Siguiente.

  18. En la Vista previa, haga clic en Consulta de prueba.

    El asistente muestra un cuadro de diálogo en el que se le pide que especifique un valor que se utilizará en la cláusula WHERE.

  19. Escriba 4 en el cuadro y haga clic en Aceptar.

    Se muestran los registros de los productos de la categoría 4.

  20. Haga clic en Finalizar para cerrar el asistente.

A continuación, puede probar la presentación de principal-detalle.

Para probar la página

  1. Presione CTRL+F5 para ejecutar la página.

    Cuando aparezca la página, se mostrarán los productos del primer elemento en la lista desplegable.

  2. Seleccione una categoría de la lista y compruebe que los productos correspondientes aparecen en la cuadrícula.

Mostrar datos de principal-detalle en la misma página

En esta parte del tutorial, los datos de tablas relacionadas se mostrarán en una página. Los datos de la tabla principal se muestran en una cuadrícula donde los usuarios pueden seleccionar cada una de las filas. Al hacerlo, se muestran uno o varios registros de detalle en un control de desplazamiento que está en otra parte de la página. Para que sirva de ejemplo, utilizará la tabla de categorías de Northwind como tabla principal y la tabla de productos como tabla de detalles.

Para mostrar los registros principales

  1. Agregue una nueva página al sitio Web y denomínela MasterDetails2.aspxa.

  2. Cambie a la vista Diseño.

  3. Escriba Página de principal-detalle en la página y dé al texto formato de encabezado.

  4. Desde el grupo Datos del Cuadro de herramientas, arrastre un control GridView a la página.

  5. En el menú Tareas de GridView, en la lista Elegir origen de datos, haga clic en <Nuevo origen de datos> y, a continuación, siga estos pasos para configurar un origen para el control GridView:

    1. Seleccione Base de datos.

    2. Haga clic en Aceptar.

    3. En la lista desplegable de conexiones, seleccione la conexión que creó y almacenó anteriormente en el tutorial (NorthwindConnectionString).

    4. Haga clic en Siguiente.

    5. En la lista Nombre, seleccione Categorías.

    6. En el cuadro Columnas, seleccione CategoryID y CategoryName.

    7. Haga clic en Siguiente y, a continuación, en Finalizar.

  6. Seleccione el control GridView y, en el menú Tareas de GridView, elija Editar columnas.

    Se muestra el cuadro de diálogo Campos.

  7. En Campos disponibles, abra el nodo Campo de comando, elija Seleccionar y, a continuación, haga clic en Agregar para agregarlo a la lista Campos seleccionados.

  8. En la lista Campos seleccionados, elija Seleccionar y, a continuación, en la cuadrícula de la propiedad CommandField, establezca su propiedad SelectText en Detalles.

  9. Haga clic en Aceptar para cerrar el cuadro de diálogo Campos.

    Se agrega a la cuadrícula una nueva columna con el hipervínculo Detalles.

  10. Seleccione el control GridView y, en la ventana Propiedades, asegúrese de que la propiedad DataKeyNames está establecida en CategoryID.

    Así se especifica que al seleccionar una fila de la cuadrícula, ASP.NET puede buscar en una ubicación conocida la clave del registro que se muestra actualmente en categorías .

La cuadrícula le permite seleccionar una sola categoría. El paso siguiente es agregar el control DetailsView que mostrará los registros de detalle, es decir, los productos asociados a la categoría seleccionada. El control DetailsView utilizará otra consulta SQL para obtener sus datos, por lo que requiere un segundo control de origen de datos.

Para configurar una consulta para mostrar los registros relacionados

  1. Presione ENTRAR para tener espacio debajo del control SqlDataSource1 en la página MasterDetails2.aspx en la vista Detalles.

  2. Desde el grupo Datos del Cuadro de herramientas, arrastre un control DetailsView a la página.

  3. Configúrelo para que utilice otro control de origen de datos, mediante los pasos siguientes:

    1. En la lista Elegir origen de datos, seleccione <Nuevo origen de datos>.

    2. Seleccione Base de datos.

    3. Haga clic en Aceptar.

    4. En la lista desplegable de conexiones, haga clic en la conexión que creó y almacenó anteriormente en el tutorial.

    5. Haga clic en Siguiente.

    6. En la lista Nombre de Opciones de tabla o vista, seleccione Products.

    7. En el cuadro Columnas, seleccione ProductID, ProductName y CategoryID.

    8. Haga clic en WHERE.

      Aparecerá el cuadro de diálogo Agregar cláusula WHERE.

    9. En la lista Columna, seleccione CategoryID.

    10. En la lista Operador, seleccione =.

    11. En la lista Origen, seleccione Control.

    12. En Propiedades del parámetro, en la lista Id. de control, seleccione GridView1. La consulta para la segunda cuadrícula obtendrá su valor de parámetro de la selección realizada en la primera cuadrícula.

    13. Haga clic en Agregar y, a continuación, haga clic en Aceptar para cerrar el cuadro de diálogo Agregar cláusula WHERE.

    14. Haga clic en Siguiente.

    15. En la Vista previa, haga clic en Consulta de prueba.

      El asistente muestra un cuadro de diálogo en el que se le pide que especifique un valor que se utilizará en la cláusula WHERE.

    16. Escriba 4 en el cuadro y haga clic en Aceptar.

      Se muestran los registros de los productos de la categoría 4.

    17. Haga clic en Finalizar.

  4. En el menú Tareas de DetailsView, active Habilitar paginación.

    Esto le permitirá desplazarse por cada uno de los registros de producto.

  5. Opcionalmente, en la ventana Propiedades, abra el nodo PagerSettings y seleccione otro valor de Modo.

    De manera predeterminada, se pagina por los registros haciendo clic en un número de página, pero también puede seleccionar las opciones para utilizar los vínculos anterior y siguiente.

A continuación, puede probar la combinación de la cuadrícula principal y la vista de detalles.

Para probar la página

  1. Presione CTRL+F5 para ejecutar la página.

  2. En la cuadrícula, seleccione una categoría.

    El control DetailsView muestra un producto asociado a esa categoría.

  3. Utilice los vínculos de paginación del control DetailsView para navegar a los otros productos de la misma categoría.

  4. En la cuadrícula, seleccione otra categoría.

  5. Revise los productos de esa categoría en el control DetailsView.

Mostrar datos de principal-detalle en páginas independientes

Para la parte final del tutorial, va a crear otra variante: mostrar registros principal-detalle en páginas independientes. Los registros principales se vuelven a mostrar en una cuadrícula que contiene un hipervínculo para cada registro. Cuando los usuarios hagan clic en el hipervínculo, navegarán a otra página donde pueden ver los registros de detalle en un control DetailsView que muestra el registro Products completo.

Para mostrar los registros principales

  1. Agregue una nueva página al sitio Web y asígnele el nombre MasterCustomers.aspx.

  2. Cambie a la vista Diseño.

  3. Escriba Clientes en la página y dé al texto formato de encabezado.

  4. Desde el grupo Datos del Cuadro de herramientas, arrastre un control GridView a la página.

  5. Desde el menú Tareas de GridView del control, seleccione <Nuevo origen de datos> en la lista Elegir origen de datos y, a continuación, use el asistente para hacer lo siguiente:

    • Haga clic en Base de datos.

    • Conecte a la base de datos Northwind (conexión NorthwindConnectionString).

    • Recupere las columnas CustomerID, CompanyNamey City de la tabla Customers.

  6. Opcionalmente, en el menú Tareas de GridView, active la casilla Habilitar paginación.

  7. En el menú Tareas de GridView, elija Editar columnas.

    Se muestra el cuadro de diálogo Campos.

  8. Desactive la casilla Generar campos automáticamente .

  9. En Campos disponibles, elija Campo de hipervínculo, haga clic en Agregar y, a continuación, establezca las propiedades siguientes:

    Propiedad

    Valor

    Text

    Detalles

    DatahrefFields

    CustomerID

    Indica que el hipervínculo debe obtener su valor de la columna IdCliente

    DatahrefFormatString

    DetailsOrders.aspx?custid={0}

    Crea un vínculo que está incluido en el código para navegar a la página DetailsOrders.aspx. El vínculo también pasa una variable de cadena de consulta denominada custid cuyo valor se rellenará utilizando la columna a la que se hace referencia en la propiedad DatahrefFields.

  10. Haga clic en Aceptar para cerrar el cuadro de diálogo Campos.

A continuación, puede crear la página de detalles que acepta un valor de la página principal.

Para crear la página de detalles

  1. Agregue una nueva página al sitio Web y asígnele el nombre DetailsOrders.aspx.

  2. Cambie a la vista Diseño.

  3. Escriba Pedidos en la página y dé al texto formato de encabezado.

  4. Desde la carpeta Datos del Cuadro de herramientas, arrastre un control GridView a la página.

  5. En el menú Tareas de GridView en el control, seleccione Tareas de GridView de la lista Elegir origen de datos

  6. En la lista Seleccionar un tipo de origen de datos, haga clic en Base de datos y, a continuación, haga clic en Aceptar.

  7. En la lista de conexiones, seleccione la conexión que creó y almacenó anteriormente en el tutorial (NorthwindConnectionString).

  8. Haga clic en Siguiente.

    El asistente muestra una página donde puede crear una instrucción SQL.

  9. En la lista Nombre, seleccione Pedidos.

  10. En el cuadro Columnas, seleccione OrderID, CustomerID y OrderDate.

  11. Haga clic en WHERE.

  12. En la lista Columnas, seleccione CustomerID.

  13. En la lista Operadores, seleccione =.

  14. En la lista Origen, seleccione QueryString.

    Así se especifica que la consulta seleccionará registros en función del valor que se pasa a la página con la cadena de consulta.

  15. En Propiedades del parámetro, en el cuadro Campo de QueryString, escriba custid.

    La consulta obtendrá el valor de Id. de cliente de la cadena de consulta, que se crea al hacer clic en el vínculo Detalles de la página MasterCustomers.aspx.

  16. Haga clic en Agregar.

  17. Haga clic en Aceptar para cerrar el cuadro de diálogo Agregar cláusula WHERE.

  18. Haga clic en Siguiente y, a continuación, haga clic en Finalizar para cerrar el asistente.

  19. Desde el nodo Estándar del Cuadro de herramientas, arrastre un control Hyperlink a la página. Establezca su propiedad Text en Volver a clientes y su propiedad href en MasterCustomers.aspx.

Ahora puede probar las páginas principal-detalle relacionadas.

Para probar las páginas

  1. Cambie a la página MasterCustomers.aspx.

  2. Presione CTRL+F5 para ejecutar la página.

  3. Haga clic en el vínculo Detalles de un cliente.

    En el explorador se muestra la página DetailsOrders.aspx con el pedido del cliente seleccionado. Observe que la dirección URL del cuadro Dirección del explorador es:

    DetailsOrder.aspx?custid=x
    

    donde x es el identificador del cliente que seleccionó.

  4. Haga clic en el vínculo Volver a clientes, seleccione otro cliente, y vuelva a hacer clic en el vínculo Detalles para comprobar que puede ver los pedidos de cualquier cliente.

Pasos siguientes

En este tutorial se han descrito distintas maneras de mostrar los datos de las tablas relacionadas. Todos los escenarios tienen en común lo siguiente: dependen de una consulta con parámetros y los valores de los parámetros se pueden pasar a la consulta automáticamente en tiempo de ejecución. Si lo desea, puede experimentar con otras maneras de utilizar los datos relacionados. Por ejemplo, podría:

Vea también

Conceptos

Información general sobre los controles de origen de datos

Modificar datos mediante controles de origen de datos