Originariamente inviato da djciko
E' possibile inserire uno usercontrol in un'altro ?
Cioe' è possibile registrare un controllo in un'altro usandolo dagli eventi come la normale pagina aspx fa con quello piu' esterno ?
Credevo che non lo si potesse fare; invece si può
(però non l'ho mai visto descritto in nessun libro)
esempio. Ho un UC chiamato orologio.ascx che espone la proprietà label.Font.Size
adesso faccio un'altro UC, chiamato WebUserControl1.ascx e vi annido l'UC orologio. Nella pagina metto: <%@ Control Language="vb" AutoEventWireup="false" Codebehind="WebUserControl1.ascx.vb" Inherits="sitae.WebUserControl1" TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
<%@ Register TagPrefix="uc1" TagName="orologio" Src="../controlli_utente/orologio/orologio.ascx" %>
<asp:Button id="Button1" runat="server" Text="Button"></asp:Button>
<uc1
rologio id="Orologio1" runat="server"></uc1
rologio>
e nel codice sottostante aggiungo la proprietà pubblica:
Public WithEvents Orologio1 As orologio
adesso faccio una pagina di prova, a.aspx:
codice:
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="a.aspx.vb" Inherits="sitae.a1"%>
<%@ Register TagPrefix="uc1" TagName="WebUserControl1" Src="WebUserControl1.ascx" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>a</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="FlowLayout">
<form id="Form1" method="post" runat="server">
<uc1:WebUserControl1 id="c1" runat="server"></uc1:WebUserControl1>
</form>
</body>
</HTML>
nel suo codice sottostante metto:
codice:
Public WithEvents c1 As WebUserControl1
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Inserire qui il codice utente necessario per inizializzare la pagina
Me.c1.Orologio1.label.Font.Size = FontUnit.XXLarge
End Sub
Spero di non avere incasinato