prendiamo ad esempio gli UserControl.
in questo caso la compilaziona andrà via liscia.
MyPlaceHolder.Control.Add(Page.LoadControl("percorso");
in questo caso possono invece presentarsi dei problemi
SimpleUserControl MyControl = this.Page.LoadControl("percorso");
il nuovo modello di compilazione, genera un assembly per ogni risorsa, in poche parole il tipo SimpleUserControl potrebbe non trovarsi nel solito assembly della pagina.
per ovviare a questo problema è necessario registrare nella pagina l'UserControl, mediante la direttiva Register
<%@ Register Src="SimpleUserControl.ascx" TagName="SimpleUserControl" TagPrefix="uc2" %>
procedura da ripetere per ogni UserControl vorremo caricare nella pagina.
un approccio più flessibile è creare un interfaccia (piazzata in App_Code)
public interface IDaVinci { string Text { get;set;} }
che i nostri UserControl implementeranno
public partial class SimpleUserControl : System.Web.UI.UserControl , SimpleInterface.IDaVinci { protected void Page_Load(object sender, EventArgs e) { } #region IDaVinci Members public string Text { get { return Label1.Text; } set { Label1.Text = value; } } #endregion }
togliamo la direttiva Register dalla pagina e:
SimpleInterface.IDaVinci MyControl = (SimpleInterface.IDaVinci)this.Page.LoadControl("percorso"); MyControl .Text = " 33 33 33";
così facendo ci siamo tolti dall'obbigo di registare ogni UserControl che avremmo utilizzato, consentendoci di caricare n tipi di UserControl appatto implementino l'interfaccia IDaVinci.
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Modificare il controllo TreeView, il 2 dicembre 2008 alle 19:27
- Perfezioniamo il ProfileDataSorce, il 13 ottobre 2008 alle 11:14
- Un DataSource per il Profile, il 10 ottobre 2008 alle 15:06
- TrueSpace 7 gratuito, il 24 luglio 2008 alle 10:59
- adesso dico la mia sull'Iphone, il 22 luglio 2008 alle 10:33
- Come tutto ebbe inizio, il 21 luglio 2008 alle 09:22