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.
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.
- Vaya al Explorador de soluciones en Visual Studio y haga clic con el botรณn derecho en la soluciรณn DemoApplication.
- 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.
- 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.
- Al hacer clic en la opciรณn "Web", verรก la opciรณn "Control de usuario de formularios web". Haga clic en esta opciรณn.
- Luego le damos un nombre al control web, โGuru99Controlโ.
- 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.
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'.
<table> <tr> <td>Guru99 Tutorials</td> </tr> <tr> <td> This Tutorial is for</td> </tr> </table>
Code Explicaciรณn:-
- 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โ.
- A continuaciรณn, definimos nuestra primera fila de la tabla y colocamos el texto como โGuru99 tutoriales.
- 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.
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.
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.
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.
<%@ 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:-
- El primer paso es registrar el control de usuario web. Esto comprende los siguientes parรกmetros bรกsicos:
- La palabra clave "Registrar" se utiliza para registrar el control de usuario web.
- El parรกmetro Src se utiliza para definir el nombre del control, que en nuestro caso es Guru99Control.ascx.
- 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.
- 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.
- Se asigna un ID opcional al control "Header". Generalmente, es una buena prรกctica asignar un ID a un control HTML.
- 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:-
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.
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.
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.
Paso 2) Ahora registremos nuestro componente en el archivo web.config. Necesitamos agregar las siguientes lรญneas para eso.
<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:
- 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.
- La etiqueta significa que estรก agregando una configuraciรณn para el control de usuario.
- 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'.
<%@ 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:-
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.
<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.
<%@ 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.
<!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.



















