Tutorial de formularios web ASP.NET: ejemplos de controles de usuario

โšก Resumen inteligente

Los controles de usuario de ASP.NET Web Forms permiten crear componentes de interfaz de usuario reutilizables una sola vez y utilizarlos en varias pรกginas. Este documento muestra cรณmo crear un control de usuario, registrarlo en una pรกgina y globalmente en web.config, y agregar propiedades pรบblicas.

  • โ™ป๏ธ Reutilizable Code: Los controles de usuario empaquetan el marcado y la lรณgica una sola vez para su reutilizaciรณn en toda la aplicaciรณn.
  • ๐Ÿ› ๏ธ Crear control: Agregue un control de usuario de formularios web (.ascx) en Visual Studio y agregue su marcado.
  • ๐Ÿ“ Regรญstrate en la pรกgina: Utilice la directiva Register con Src, TagName y TagPrefix para usarla en una sola pรกgina.
  • ๐ŸŒ Regรญstrate globalmente: Agregue el control en pages/controls en web.config para usarlo en todas las pรกginas.
  • ๐Ÿ”ง Propiedades pรบblicas: Expรณn propiedades como MinValue para que las pรกginas puedan configurar el comportamiento del control.

Tutorial de formularios web ASP.NET: ejemplos de controles de usuario

En ASP.Net, es posible crear cรณdigo reutilizable. El cรณdigo reutilizable se puede utilizar en muchos lugares sin necesidad de escribir el cรณdigo nuevamente.

El cรณdigo reutilizable ayuda a reducir el tiempo que el desarrollador dedica a escribirlo. Se puede escribir una vez y reutilizar en mรบltiples lugares.

Crear control de usuario en ASP.Net

ASP.Net permite crear controles web. Estos controles contienen cรณdigo reutilizable que puede utilizarse en toda la aplicaciรณn segรบn las necesidades.

Veamos un ejemplo de cรณmo podemos crear un control de usuario web en ASP.Net.

En nuestro ejemplo:

  • Vamos a crear un control web.
  • Se utilizarรก para crear un componente de encabezado.
  • Contendrรก el siguiente texto: โ€œGuruโ€œ99 Tutorialesโ€ y โ€œEste tutorial es para ASP.Netโ€.

Trabajemos con nuestra aplicaciรณn web actual creada en las secciones anteriores. Sigamos los pasos a continuaciรณn para crear un control de usuario web.

Paso 1) El primer paso es crear un control de usuario web y agregarlo a nuestra soluciรณn de Visual Studio.

Crear control de usuario en ASP.Net

  1. Vaya al Explorador de soluciones en Visual Studio y haga clic con el botรณn derecho en la soluciรณn DemoApplication.
  2. Seleccione la opciรณn de menรบ Agregar->Nuevo elemento.

Paso 2) En el siguiente paso, debemos elegir la opciรณn de crear un control de usuario web.

Crear control de usuario en ASP.Net

  1. En el cuadro de diรกlogo del proyecto, podemos ver varias opciones para crear distintos tipos de componentes. Haga clic en la opciรณn โ€œWebโ€ en el lado izquierdo.
  2. Al hacer clic en la opciรณn "Web", verรก la opciรณn "Control de usuario de formularios web". Haga clic en esta opciรณn.
  3. Luego le damos un nombre al control web, โ€œGuru99Controlโ€.
  4. Por รบltimo, haga clic en el botรณn "Agregar" para permitir que Visual Studio agregue el control de usuario web a nuestra soluciรณn.

A continuaciรณn, verรก el "GuruSe agregรณ "99Control" a la soluciรณn.

Crear control de usuario en ASP.Net

Paso 3) Ahora es el momento de agregar el cรณdigo personalizado al control de usuario web. Nuestro cรณdigo se basarรก en la sintaxis HTML pura. Agregue el siguiente cรณdigo al 'GuruArchivo '99Control.ascx'.

Crear control de usuario en ASP.Net

<table>
	<tr>
	  <td>Guru99 Tutorials</td>
	</tr>

	<tr>
	  <td> This Tutorial is for</td>
	</tr>
</table>

Code Explicaciรณn:-

  1. En nuestro archivo de control web, primero creamos un elemento de tabla. Este se utilizarรก para contener 2 filas de texto que mostrarรกn โ€œGuruโ€œ99 Tutorialesโ€ y โ€œEste tutorial es para ASP.Netโ€.
  2. A continuaciรณn, definimos nuestra primera fila de la tabla y colocamos el texto como โ€œGuru99 tutoriales.
  3. Luego definimos nuestra segunda fila de la tabla y ponemos el texto como "Este tutorial es para ASP.Net".

NOTA: Ahora no podemos ejecutar este cรณdigo ni mostrar el resultado. La รบnica forma de comprobar si funciona es incluirlo en nuestra aplicaciรณn (archivo .aspx). Lo veremos en el siguiente tema.

Registro de controles de usuario en un formulario web ASP.NET

En la secciรณn anterior, vimos cรณmo crear un control web personalizado. Este se puede usar para mostrar las siguientes dos lรญneas en un formulario web:

  • "Guru99 tutorialesโ€
  • "Este tutorial es para ASP.Net".

Una vez creado el control personalizado, debemos usarlo en nuestra aplicaciรณn web. El primer paso es registrar el componente en nuestra aplicaciรณn (Demo.aspx). Este es un requisito previo para usar cualquier control web personalizado en una aplicaciรณn ASP.Net.

Registro de controles de usuario en un formulario web ASP.NET

Veamos cรณmo podemos lograr esto. Los siguientes pasos son una continuaciรณn de la secciรณn anterior, en la que creamos nuestro control personalizado. En esta secciรณn, utilizaremos el control en nuestro Demostraciรณn.aspx Formulario web. Primero, registraremos nuestro 'control' personalizado en el archivo Demo.aspx.

Paso 1) Asegรบrese de estar trabajando en el archivo demo.aspx. En este archivo se registrarรก el control de usuario web. Para ello, haga doble clic en el archivo demo.aspx en el Explorador de soluciones de su soluciรณn .NET.

Registro de controles de usuario en un formulario web ASP.NET

Al hacer doble clic en el formulario, probablemente verรก el siguiente cรณdigo. Este es el cรณdigo predeterminado que Visual Studio agrega al aรฑadir un formulario web a un proyecto ASP.Net. El cรณdigo predeterminado incluye los pasos necesarios para que el formulario se ejecute correctamente en el navegador.

Registro de controles de usuario en un formulario web ASP.NET

Paso 2) Ahora agreguemos nuestro cรณdigo para registrar el control de usuario. La siguiente captura de pantalla muestra el registro del control de usuario agregado al cรณdigo bรกsico anterior.

Registro de controles de usuario en un formulario web ASP.NET

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo.aspx.cs" Inherits="DemoApplication.Demo" %>
<%@ Register Src="~/Guru99Control.ascx" TagName="WebControl" TagPrefix="TWebControl" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
	<title></title>
</head>
<body>
	<form id="form1" runat="server">
		<TWebControl:WebControl ID="Header" runat="server" />
	</form>
</body>
</html>

Code Explicaciรณn:-

  1. El primer paso es registrar el control de usuario web. Esto comprende los siguientes parรกmetros bรกsicos:
    1. La palabra clave "Registrar" se utiliza para registrar el control de usuario web.
    2. El parรกmetro Src se utiliza para definir el nombre del control, que en nuestro caso es Guru99Control.ascx.
    3. TagName y TagPrefix son nombres individuales que se le dan al control. Esto se hace para que se pueda hacer referencia a ellos en las pรกginas HTML como a un control HTML normal.
  2. A continuaciรณn, hacemos referencia a nuestro control de usuario web a travรฉs de TagPrefix:TagName que se asignรณ anteriormente. TagPrefix:TagName es un indicador de que queremos usar nuestro control web personalizado. Cuando la pรกgina es procesada por el servidor web, puede ver que hemos usado la etiqueta TWebControl:WebControl. Luego procesarรก el 'Guru99Control' en consecuencia.
    1. Se asigna un ID opcional al control "Header". Generalmente, es una buena prรกctica asignar un ID a un control HTML.
    2. Finalmente, el atributo `runat="server"` garantiza que el control se ejecute en el servidor web. Para todos los controles de ASP.Net, este es el atributo predeterminado. Todos los controles de ASP.Net (incluidos los controles personalizados) deben ejecutarse en el servidor. Su salida se envรญa desde el servidor al cliente y se muestra en el navegador.

Cuando se configura el cรณdigo anterior y el proyecto se ejecuta usando Visual Studio, obtendrรก el siguiente resultado.

Salida:-

Registro de controles de usuario en un formulario web ASP.NET

El mensaje de salida que se muestra en el navegador muestra que el control de usuario web se ejecutรณ correctamente.

Registro global de controles ASP.Net en el archivo de configuraciรณn web.config

En ocasiones, puede que se desee utilizar controles de usuario en varias pรกginas de una aplicaciรณn .Net. En este caso, no conviene registrar controles de usuario en cada pรกgina de ASP.Net.

  • En .Net puedes realizar el registro en el archivo โ€˜web.configโ€™.
  • El archivo web.config es un archivo de configuraciรณn comรบn utilizado por todas las pรกginas web en un proyecto .Net.
  • Contiene los detalles de configuraciรณn necesarios para el proyecto web ASP.Net. Por ejemplo, una configuraciรณn comรบn en el archivo web.config es la siguiente: parรกmetro del marco de destino.
  • Este parรกmetro se utiliza para identificar la versiรณn de .Net framework utilizada por la aplicaciรณn.

A continuaciรณn se muestra una instantรกnea del cรณdigo predeterminado en el archivo web.config. La parte resaltada es la parte del marco de destino.

Registro global de controles ASP.Net en el archivo web.config

Veamos cรณmo podemos registrar nuestro Guru99Control en el archivo web.config.

Paso 1) Abra el archivo web.config desde el Explorador de soluciones haciendo doble clic en รฉl.

Registro global de controles ASP.Net en el archivo web.config

Al abrir el archivo web.config, es posible que vea la siguiente configuraciรณn. Visual Studio agrega automรกticamente el archivo 'web.config' cuando se crea el proyecto. Esta es la configuraciรณn bรกsica necesaria para que el proyecto ASP.Net funcione correctamente.

Registro global de controles ASP.Net en el archivo web.config

Paso 2) Ahora registremos nuestro componente en el archivo web.config. Necesitamos agregar las siguientes lรญneas para eso.

Registro global de controles ASP.Net en el archivo web.config

<configuration>
	<system.web>
	 <compilation debug="true" targetFramework="4.5" />
	<pages>
		<controls>
		 <add tagPrefix="TWebControl" src="~/Guru99Control.ascx" tagName="WebControl" />
		</controls>
	</pages>
	</system.web>
</configuration>

El proceso de registro comprende los siguientes pasos:

  1. Agregue una etiqueta llamada . Significa que toda la configuraciรณn de los controles serรก aplicable a todas las pรกginas ASP.Net de la soluciรณn.
  2. La etiqueta significa que estรก agregando una configuraciรณn para el control de usuario.
  3. Luego registramos el control de usuario con la etiqueta adicional. Los parรกmetros restantes de tagPrefix, tagName y src permanecen iguales que antes.

Paso 3) Recuerde ir a la pรกgina 'demo.aspx' y eliminar las lรญneas del control que tenรญan el registro de la Guru99 componentes. Si no realiza este paso, entonces el 'GuruEl archivo '99Control.ascx' se ejecutarรก desde el archivo 'demo.aspx' en lugar del archivo 'web.config'.

Registro global de controles ASP.Net en el archivo web.config

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo.aspx.cs" Inherits="DemoApplication.Demo" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
	<head runat="server">
	  <title></title>
	</head>
<body>
	<form id="form1" runat="server">
	  <TWebControl:WebControl ID="Header" runat="server" />
	</form>
</body>
</html>

Una vez configurado el cรณdigo anterior y ejecutado el proyecto con Visual Studio, obtendrรก el siguiente resultado.

Salida:-

Registro global de controles ASP.Net en el archivo web.config

El mensaje de salida muestra que el control de usuario web se ejecutรณ correctamente.

Agregar propiedades pรบblicas a un control web

Una propiedad es un par clave-valor asociado a cualquier control. Veamos un ejemplo sencillo. Etiqueta HTML. A continuaciรณn se muestra una captura de pantalla de cรณmo se ve la etiqueta.

Agregar propiedades pรบblicas a un control web

<html>
<body>
	<div style="color:#0000FF">

		Demo Form

	</div>
</body>
</html>

La etiqueta 'div' se utiliza para crear una secciรณn en un documento HTML. La etiqueta 'div' tiene una propiedad llamada propiedad de estilo. Esta se puede utilizar para dar un estilo diferente al texto que se muestra en la etiqueta div. Normalmente, verรก el cรณdigo para la etiqueta div como se muestra a continuaciรณn.

<div style="color:#0000FF">

Entonces, el atributo de color no es mรกs que un par clave-valor que brinda mรกs informaciรณn sobre la etiqueta en sรญ. En el caso anterior, el nombre de la clave es "estilo" y el valor de la clave es "color:#0000FF".

De manera similar, para los controles de usuario, puede crear sus propias propiedades que describan el control.

Tomemos un ejemplo sencillo y desarrollemos nuestro 'GuruEl control '99Control' se creรณ en las secciones anteriores. En nuestro ejemplo, agregaremos una propiedad entera simple llamada MinValue. Este valor representarรก la cantidad mรญnima de caracteres en el texto que se muestra en el control de usuario.

Llevemos a cabo los pasos que se mencionan a continuaciรณn para implementar esto.

Paso 1) Abra el panel de GuruArchivo 99Control.ascx. Agregue el cรณdigo para aรฑadir la propiedad MinValue.

Agregar propiedades pรบblicas a un control web

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo.aspx.cs" Inherits="DemoApplication.Demo" %>

	<script runat="server">
	  public int MinValue = 0;
	</script>

<table>
	<tr>
	  <td>Guru99 Tutorials</td>
	</tr>

	<tr>
	  <td> This Tutorial is for</td>
	</tr>
</table>

Code Explicaciรณn:-

El atributo `runat="server"` del script se utiliza para indicar que estamos agregando cรณdigo especรญfico de .NET y que este debe ejecutarse en el servidor web. Esto es necesario para procesar cualquier propiedad agregada al control de usuario. A continuaciรณn, agregamos nuestra propiedad `MinValue` y le asignamos un valor predeterminado de 0.

Paso 2) Ahora hagamos referencia a esta propiedad en nuestro archivo demo.aspx. Todo lo que estamos haciendo ahora es simplemente hacer referencia a la propiedad MinValue y asignar un nuevo valor de 100.

Agregar propiedades pรบblicas a un control web

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
	<head runat="server">
	  <title></title>
	</head>
<body>
	<form id="form1" runat="server">
	  <TWebControl:WebControl ID="Header" runat="server" MinValue="100" />
	</form>
</body>
</html>

NOTA: Al ejecutar este cรณdigo, no se mostrarรก ninguna salida. Esto se debe a que la salida no supera el lรญmite de 100 caracteres.

Preguntas Frecuentes

Sรญ. Los asistentes de IA pueden generar el marcado .ascx, el cรณdigo subyacente y la directiva Register a partir de una descripciรณn del componente reutilizable. RevRevisa los valores generados de TagPrefix, TagName y Src para asegurarte de que coincidan con tu proyecto.

En parte. La IA puede ayudar a convertir un control de usuario .ascx en un componente Razor de ASP.NET Core o en una vista parcial, e identificar las diferencias en el modelo. Las migraciones aรบn requieren pruebas manuales, ya que los frameworks gestionan el estado y los eventos de forma diferente.

Un control de usuario (.ascx) se crea a partir de controles existentes y es fรกcil de crear, pero estรก vinculado a un solo proyecto. Un control personalizado se compila en una DLL, es mรกs difรญcil de compilar, pero se puede reutilizar en varios proyectos y estรก disponible en la caja de herramientas.

Regรญstrelo en una sola pรกgina cuando solo esa pรกgina utilice el control. Regรญstrelo en web.config cuando el control se utilice en varias pรกginas, para evitar repetir la directiva Register en cada una de ellas.

Resumir este post con: