Sviluppo di un controllo composto

È possibile creare nuovi controlli combinando quelli esistenti mediante la composizione delle classi. Un controllo composto consente di eseguire il rendering di un'interfaccia utente che riutilizza le funzionalità dei controlli esistenti. Consente inoltre di sintetizzare le proprietà a partire dalle proprietà dei relativi controlli figlio e gestire gli eventi generati da questi ultimi, nonché esporre proprietà ed eventi personalizzati.

Un controllo composto deve effettuare le operazioni riportate di seguito.

  • Eseguire l'override del metodo protetto CreateChildControls ereditato da Control per creare istanze dei controlli figlio e aggiungerle all'insieme Controls.
  • Implementare l'interfaccia System.Web.UI.INamingContainer. INamingContainer è un'interfaccia indicatore priva di metodi. Quando l'interfaccia INamingContainer viene implementata da un controllo, il framework di pagina ASP.NET crea una nuova area di validità della denominazione sotto tale controllo, garantendo l'univocità dei nomi dei controlli figlio nella struttura gerarchica dei controlli. Questa operazione si rivela particolarmente importante quando un controllo composto espone le proprietà dei modelli, fornisce l'associazione dati o richiede l'invio di eventi ai relativi controlli figlio.

Non è necessario eseguire l'override del metodo Render poiché la logica di rendering è fornita dai controlli figlio. È possibile eseguire il bubbling di eventi dai controlli figlio fino al contenitore ed esporli come eventi di primo livello. Per ulteriori informazioni, vedere Bubbling di un evento ed Esempio di controllo di bubbling degli eventi.

Per un esempio di controllo composto, vedere Esempio di controllo server composto.

I controlli composti sono equivalenti ai controlli utente creati in modo dichiarativo. Sono tuttavia presenti significative differenze tra il comportamento durante la fase di progettazione e il formato di persistenza di controlli composti e controlli utente. Per una panoramica delle differenze, vedere Controllo composto e controllo utente.

Se si desidera ottimizzare le prestazioni di un controllo, è possibile utilizzare il rendering diretto anziché la composizione, come illustrato in Composizione e rendering.

Vedere anche

Esempio di controllo server composto | Controllo composto e controllo utente | Composizione e rendering | Bubbling di un evento | Esempio di controllo di bubbling degli eventi