C�mo implementar anida controles de usuario de Web en ASP.NET utilizando Visual C# .NET
Id. de art�culo: 317991 - Ver los productos a los que se aplica este art�culoVer renuncia de traducci�n autom�ticaTraducci�n autom�tica en p�ginas de MicrosoftExpandir todo | Contraer todoEn esta p�ginaResumenEn este art�culo paso a paso muestra c�mo implementar controles de usuario de Web anidados en una aplicaci�n ASP.NET. Los conceptos son b�sicamente el mismo que al crear controles de usuario Web para incluir en una p�gina .aspx o en otro control de usuario de Web, que normalmente se denomina anidamiento.Una de las principales razones para utilizar controles de usuario de Web anidados es facilitar la reutilizar el c�digo. Por dividir la funcionalidad en controles de usuario independiente, el desarrollo de control de usuario puede beneficiarse de reutilizar el mismo c�digo y, por tanto, la misma interfaz de control de usuario, que agrega valor a las p�ginas .aspx.RequisitosEn la lista siguiente se describe el hardware, el software, la infraestructura de red y los Service Packs recomendados que necesitar�: Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server o Windows XP ProfessionalMicrosoft .NET frameworkMicrosoft Visual Studio .NETServicios de Microsoft Internet Information Server (IIS)Crear una aplicaci�n Web ASP.NET mediante Visual C# .NETInicie Microsoft Visual Studio NET..En el men� archivo , seleccione nuevo y, a continuaci�n, haga clic en proyecto .Haga clic en Proyectos de Visual C# en Tipos de proyecto y, a continuaci�n, haga clic en Aplicaci�n Web ASP.NET bajo plantillas .En el cuadro ubicaci�n , reemplazar el WebApplication # nombre predeterminado NestedUserControls en la ruta URL. Si utiliza el servidor local, puede dejar el nombre del servidor como http://localhost . La ruta de acceso aparece como sigue en el cuadro ubicaci�n :http://localhost/NestedUserControls Crear controles de usuarioEn las dos secciones siguientes, se crea un ejemplo de un simple control de usuario que recupera y muestra el nombre del usuario de una cookie Web. Este control se anidar�n en otro control de usuario Web (MenuCtrl.ascx).Generar el control de felicitaci�nSiga estos pasos para agregar un nuevo control de usuario de Web se denomina GreetingCtrl.ascx: En el Explorador de soluciones, haga clic con el bot�n secundario del mouse en el nodo del proyecto, elija Agregar y, a continuaci�n, haga clic en Agregar Control de usuario Web .En el cuadro nombre , escriba GreetingCtrl.ascx .Cambie a la vista Dise�o en el editor de y a continuaci�n, arrastre un Web control Label de formularios desde el cuadro de herramientas hasta la p�gina.En la ventana Propiedades, cambie la propiedad ID del control Label a saludo y, a continuaci�n, borre el valor de la propiedad Text .Haga clic con el bot�n secundario en la p�gina y, a continuaci�n, haga clic en Ver c�digo .Agregue la siguiente declaraci�n de variable privada para el c�digo - detr�s de archivo en la clase GreetingCtrl :
Agregue el c�digo siguiente al c�digo - detr�s archivo despu�s de la declaraci�n de variable privada para ctrlGreeting :
este c�digo agrega una propiedad que se denomina GreetingMessage . GreetingMessage utiliza un bloque get (descriptor de acceso) y un bloque de conjunto (mutador) para recuperar los valores y para asignar valores para la variable ctrlGreeting .Reemplace el c�digo existente en el controlador de eventos Page_Load con el siguiente c�digo:
Generar el control de men�Siga estos pasos para agregar un nuevo control de usuario de Web se denomina MenuCtrl.ascx: En el Explorador de soluciones, haga clic con el bot�n secundario del mouse en el nodo del proyecto, elija Agregar y, a continuaci�n, haga clic en Agregar Control de usuario Web .En el cuadro nombre , escriba MenuCtrl.ascx .Cambie a la vista HTML en el editor y, a continuaci�n, agregue el c�digo siguiente:
forma predeterminada, Visual Studio .NET agrega el c�digo de la directiva @ Control y la directiva @ Register de la GreetingCtrl . Se utiliza la directiva @ Register para incluir controles de usuario en p�ginas de formularios Web Forms y otros controles de usuario.Adem�s, observe que la directiva @ Register incluye atributos Src , el TagName y el TagPrefix .El atributo TagPrefix determina un espacio de nombres �nico para el control de usuario. Esta diferencia entre varios controles de usuario con el mismo nombre.El atributo TagName es el nombre �nico que seleccion� para el control de usuario.El atributo Src es la ruta de acceso virtual al control de usuario. Nota : despu�s de registrar un control de usuario Web, puede colocar la directiva @ Control en una p�gina de formularios Web Forms como har�a con un control de servidor normal, incluya el siguiente atributo:
Haga clic con el bot�n secundario en la p�gina y, a continuaci�n, haga clic en Ver c�digo .Para declarar el GreetingCtrl para que se hace referencia a �l en el c�digo - detr�s del archivo de clase y a la lista el control de formularios Web Forms tabla ( MenuTable ), agregue el siguiente c�digo para el archivo de clase de c�digo subyacente:
Nota : cuando est� en la vista Dise�o en Visual Studio. NET, puede arrastrar un control de usuario del explorador de soluciones en otro control de usuario o en una p�gina .aspx. Muestra autom�ticamente el control con la directiva @ Register . Sin embargo, todav�a debe declare una instancia del control de usuario en el archivo de clase de c�digo subyacente a hacer referencia a �l correctamente. Para obtener m�s informaci�n, vea la Troubleshooting de la secci�n de este art�culo.Para especificar mediante programaci�n v�nculos de men�, agregue el c�digo siguiente al c�digo - detr�s del archivo de clase para incluir un m�todo AddMenuItem en el MenuCtrl :
aviso que este c�digo agrega el m�todo BuildLink , que llama el m�todo AddMenuItem para generar los hiperv�nculos en el men�. Puede hacer que el m�todo AddItem p�blica para exponer AddItem . Al exponer AddItem , puede establecer el men� elementos de hiperv�nculo desde cualquier p�gina .aspx o de control de usuario al que se agrega el control.En este ejemplo, se establecen el men� valores de hiperv�nculo en el propio control, se espera que se utilizar� el control con los mismos hiperv�nculos en toda la aplicaci�n. Mediante este m�todo, puede modificar el control y aseg�rese de que los cambios se aplican autom�ticamente a todas las p�ginas o a otros controles de usuario que utilizan el control.Si desea hacer p�blica AddItem y llamar a AddItem desde una p�gina .aspx, debe modificar el c�digo en cada p�gina .aspx que implementa AddItem si cambiara los hiperv�nculos. Esto puede resultar �til si desea MenuCtrl que m�s gen�rico y si tiene que establecer los hiperv�nculos basados en la p�gina o en otro control de usuario al que se agrega el control. Esto depende en funci�n de qu� servir� el control y c�mo desea implementarla.Agregue el c�digo siguiente al c�digo - detr�s del archivo de clase para crear una propiedad denominada BackGroundColor le permite establecer el color de fondo del control mediante la propiedad BackColor del control de formularios Web Forms tabla ( MenuTable ):
Reemplace el c�digo existente en el controlador de eventos Page_Load para el MenuCtrl con el siguiente c�digo:
este c�digo establece la propiedad GreetingMessage del control GreetingCtrl "Howdy." Adem�s, este c�digo genera los hiperv�nculos para el control MenuCtrl .Agregar el control de usuario a un Web FormEn esta secci�n, agregue el control de MenuCtrl que contiene el anidado GreetingCtrl una p�gina de formularios Web Forms que se denomina SamplePage.aspx. Siga estos pasos para agregar un nuevo Web Form de ASP.NET que se denomina SamplePage.aspx al proyecto: En el Explorador de soluciones, haga clic con el bot�n secundario del mouse en el nodo del proyecto, elija Agregar y, a continuaci�n, haga clic en Agregar Web Forms .En el cuadro nombre , escriba SamplePage.aspx .Cambie a la vista HTML en el editor y, a continuaci�n, agregue el c�digo siguiente:
forma predeterminada, Visual Studio .NET agrega la directiva @ Page para usted.En el men� archivo , haga clic en Guardar todo para guardar el Web Form y otros archivos que se asocian con el proyecto.En el men� Generar en el entorno de desarrollo integrado Visual Studio .NET (IDE), haga clic en Generar soluci�n para generar el proyecto.En el Explorador de soluciones, haga clic con el bot�n secundario del mouse en SamplePage.aspx y, a continuaci�n, haga clic en Ver en el explorador . Observe c�mo la GreetingCtrl y los controles MenuCtrl se representan en el explorador. Observe que ambos controles conservan su funcionalidad y parecen ser otra parte de la p�gina Web.Soluci�n de problemasSi no declara espec�ficamente un control de usuario en el archivo de clase de c�digo subyacente y si intenta hacer referencia el control de usuario en el c�digo, puede recibir un error de generaci�n es similar a la siguiente mensaje de error: El tipo o espacio de nombres de nombre no se pudo encontrar ' User
Control Name ' (�falta una utilizando directiva o una referencia de ensamblado?) Deber� declarar espec�ficamente los controles de usuario cuando programa contra ellas en el archivo de clase de c�digo en segundo plano.Para obtener informaci�n adicional, haga clic en el n�mero de art�culo siguiente para ver el art�culo en Microsoft Knowledge Base: 316370
Error: Visual Studio .NET no genera una declaraci�n de c�digo para controles de usuario Web Volver arriba | Enviar comentariosReferenciasPara obtener informaci�n adicional sobre los recursos de desarrollo de ASP.NET, haga clic en el n�mero de art�culo siguiente para verlo en Microsoft Knowledge Base: 305140
INFORMACI�N: Gu�a b�sica de ASP.NET Para obtener m�s informaci�n sobre c�mo utilizar Web ASP.NET controles de usuario, visite los siguientes sitios Web de MSDN: Controles de usuario de formularios Web Formshttp://msdn.microsoft.com/en-us/library/aa735701.aspx
Convertir una p�gina de formularios Web en un control de usuariohttp://msdn.microsoft.com/en-us/library/aa719784.aspx
Controlar eventos de control de usuariohttp://msdn.microsoft.com/en-us/library/t4z863dh.aspx
Volver arriba | Enviar comentariosPropiedadesId. de art�culo: 317991 - �ltima revisi�n: viernes, 14 de abril de 2006 - Versi�n: 4.6La informaci�n de este art�culo se refiere a:Microsoft ASP.NET 1.1Microsoft ASP.NET 1.0Microsoft Visual C# .NET 2003 Standard EditionMicrosoft Visual C# .NET 2002 Standard EditionPalabras clave:�
kbmt kbctrlcreate kbhowtomaster KB317991 KbMtesTraducci�n autom�ticaIMPORTANTE: Este art�culo ha sido traducido por un software de traducci�n autom�tica de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece art�culos traducidos por un traductor humano y art�culos traducidos autom�ticamente para que tenga acceso en su propio idioma a todos los art�culos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los art�culos traducidos autom�ticamente pueden contener errores en el vocabulario, la sintaxis o la gram�tica, como los que un extranjero podr�a cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisi�n, error o da�o ocasionado por una mala traducci�n del contenido o como consecuencia de su utilizaci�n por nuestros clientes. Microsoft suele actualizar el software de traducci�n frecuentemente.Haga clic aqu� para ver el art�culo original (en ingl�s): 317991
(http://support.microsoft.com/kb/317991/en-us/