Sviluppo di controlli personalizzati: concetti principali

In questa sezione viene fornita una panoramica riassuntiva dei diversi elementi di programmazione utilizzati nello sviluppo di un controllo server ASP.NET. Gli argomenti esaminati rappresentano una guida di orientamento alla programmazione. Informazioni dettagliate vengono fornite altrove in questa sezione. È possibile modificare il controllo utilizzando un linguaggio di programmazione compatibile con Common Language Specification, come illustrato in Introduzione a Common Language Specification.

Un controllo server ASP.NET è una classe derivata direttamente o indirettamente da System.Web.UI.Control. Le due classi seguenti sono le classi base per i controlli server ASP.NET.

  • System.Web.UI.Control

    La classe Control definisce le proprietà, i metodi e gli eventi comuni a tutti i controlli server ASP.NET, inclusi i metodi e gli eventi che regolano la durata dell'esecuzione del controllo e proprietà, quali ID, UniqueID, Parent, ViewState e Controls, ovvero l'insieme dei controlli figlio. Control non dispone di funzioni specifiche per l'interfaccia utente. Se si modifica un controllo che non fornisce un'interfaccia utente o che combina altri controlli che eseguono il rendering delle rispettive interfacce utente, derivare il controllo dalla classe Control.

  • System.Web.UI.WebControls.WebControl

    La classe WebControl deriva da Control e fornisce proprietà e metodi aggiuntivi per le funzionalità di interfaccia utente. Tali proprietà comprendono ForeColor, BackColor, Font, BorderStyle, Height e Width. WebControl è la classe base per la famiglia di controlli server Web in ASP.NET. Se il controllo esegue il rendering dell'interfaccia utente, effettuare la derivazione da WebControl.

In base alle funzionalità del controllo, è possibile implementare una o più delle interfacce riportate di seguito.

  • System.Web.UI.INamingContainer

    INamingContainer è un'interfaccia indicatore (vuota) senza metodi. Quando l'interfaccia viene implementata da un controllo, il framework di pagina ASP.NET crea una nuova area di validità della denominazione sotto tale controllo, in modo da garantire l'univocità degli ID dei controlli figlio nella struttura gerarchica dei controlli. Nel caso in cui si tratti di un controllo composto (contenente controlli figlio) che fornisce l'associazione dati, di un controllo basato su template o di un controllo che richiede l'invio di eventi ai relativi controlli figlio, è necessario implementare l'interfaccia INamingContainer. Alcuni esempi sono rappresentati dal controllo Repeater e da altri controlli con associazione dati. Per ulteriori informazioni, vedere Sviluppo di un controllo composto.

  • System.Web.UI.IPostBackDataHandler

    Se il controllo richiede l'esame dei dati di postback e l'aggiornamento del relativo stato o la generazione di eventi sul server in base alle modifiche apportate ai dati, è necessario implementare l'interfaccia IPostBackDataHandler. Un esempio è rappresentato dal controllo TextBox, il quale esamina il valore inserito del testo, aggiorna la proprietà Text e genera un evento TextChanged quando il testo viene modificato. Per ulteriori informazioni, vedere Elaborazione dei dati di postback.

  • System.Web.UI.IPostBackEventHandler

    Se il controllo acquisisce un evento postback del lato client e risponde gestendo l'evento o generando eventi sul server, è necessario implementare l'interfaccia IPostBackEventHandler. Un esempio viene fornito dal controllo Button, il quale acquisisce l'invio di un form e genera un evento Click sul server. Per ulteriori informazioni, vedere Acquisizione di eventi postback.

È possibile eseguire l'override di proprietà, metodi ed eventi ereditati da una classe base nonché aggiungere nuove proprietà, metodi ed eventi al controllo personalizzato. Per ulteriori informazioni, vedere Proprietà nei controlli server ASP.NET, Metodi nei controlli server ASP.NET ed Eventi nei controlli server ASP.NET.

ASP.NET consente ai controlli di accedere ed esporre gli stili, come illustrato in Stili nei controlli server. È possibile programmare un controllo server ASP.NET che consenta agli sviluppatori di pagine di personalizzarne l'interfaccia utente mediante modelli inline. Per ulteriori informazioni, vedere Sviluppo di un controllo basato su template.

Per sviluppare un controllo con associazione a dati che comprende proprietà complesse associate a dati, vedere Sviluppo di un controllo con associazione dati basato su template.

Per informazioni dettagliate sulla creazione di un controllo semplice personalizzato, vedere Sviluppo di un controllo server ASP.NET semplice.

Vedere anche

Sviluppo di un controllo server ASP.NET semplice | Gerarchia dei controlli server ASP.NET