Ho avuto come esperienza alcune domande sull'uso di LoadControl che mi hanno spiazzato.
Ho sentito dire (:)) che per usare LoadControl bisogna per forza mettere un register tagprefix all'interno della pagina.... però tutto questo non ha molto senso, perchè se devo fare un LoadControl vuol dire che (potenzialmente) non so che controllo dovrò caricare, e quindi tutto questo diventa impossibile.
Ma infatti, per utilizzare il metodo LoadControl non c'è bisogno di avere nessuna registrazione: basta avere un placeHolder, e utilizzare il metodo LoadControl della classe Page, passando il path relativo (con la sintassi Page.LoadControl("~/Controls/MyControl.ascx");)
In questo modo avrò un istanza di UserControl che posso aggiungere alla collezione di controlli del mio PlaceHolder (_non_ della pagina, perchè c'è il solito problema che verrebbe aggiunto all'inizio della collezione dei controlli e non potrei comandare la posizione in cui viene renderizzato) e interagirci.
Visto il compilation model di ASP.NET 2.0 che in caso di website può rompere le scatole, di solito preferisco crearmi delle classi base dei miei controlli in modo che poi da ogni pagina web posso raggiungerle tranquillamente e interagire con proprietà e metodi. Questo può essere molto utile soprattutto in fase di architetture a plug-in, in cui delego la logica organizzativa della pagina a tanti user control caricati dinamicamente in differenti placeholder!