Cenni preliminari sui controlli server Web ASP.NET

Aggiornamento: novembre 2007

Al momento della creazione di pagine Web ASP.NET, è possibile utilizzare i tipi di controlli seguenti:

  • Controlli server HTML   Elementi HTML esposti al server in modo che sia possibile programmarli. I controlli server HTML espongono un modello a oggetti che si associa strettamente agli elementi HTML di cui eseguono il rendering.

  • Controlli server Web   Controlli con un numero di funzionalità incorporate superiore a quello dei controlli server HTML. I controlli server Web non includono solo i controlli di tipo form, come i pulsanti e le caselle di testo, ma anche controlli con uno scopo speciale come quelli di tipo calendario, menu e visualizzazione struttura. Inoltre questo tipo di controlli sono più astratti rispetto ai controlli server Web, in quanto il loro modello a oggetti non riflette necessariamente la sintassi HTML.

  • Controlli di convalida   Controlli che includono la logica per verificare quanto viene immesso dagli utenti per controlli di input come il controllo TextBox. I controlli di convalida consentono di verificare la presenza di un campo richiesto, eseguire un test in base a un valore specifico o uno modello di caratteri, accertarsi che un valore sia incluso in un intervallo e così via. Per ulteriori informazioni, vedere Convalida dei controlli ASP.NET.

  • Controlli utente   Controlli creati come pagine Web ASP.NET. È possibile incorporare controlli utente ASP.NET in altre pagine Web ASP.NET: un modo facile di creare barre degli strumenti e altri strumenti riutilizzabili. Per ulteriori informazioni, vedere Controlli utente ASP.NET.

    Nota:

    È inoltre possibile creare output per dispositivi mobili. A tal fine, utilizzare lo stesso framework di pagina di ASP.NET creando però pagine Web ASP.NET mobili anziché pagine Web ASP.NET e utilizzando controlli progettati specificamente per dispositivi mobili. Per informazioni, vedere Creazione di pagine Web ASP.NET per dispositivi mobili.

Tutti i tipi di controlli esistenti possono essere utilizzati nella stessa pagina. Nelle sezioni seguenti sono fornite ulteriori informazioni sui controlli server ASP.NET.

Nota:

In alcune situazioni per il corretto funzionamento dei controlli server è richiesto lo script client. Se le funzionalità di scripting sono state disattivate nel browser, è possibile che i controlli non funzionino come previsto. Per informazioni dettagliate, vedere Controlli server Web ASP.NET e funzionalità del browser.

Controlli server HTML

I controlli server HTML sono elementi HTML (o elementi di altro markup supportato, come XHTML) contenenti attributi che li rendono programmabili nel codice server. Per impostazione predefinita, gli elementi HTML in una pagina Web ASP.NET non sono disponibili sul server. Al contrario, vengono considerati come testo opaco e passati al browser. Convertendo gli elementi HTML in controlli server HTML, tali elementi vengono esposti come elementi programmabili nel server.

Il modello a oggetti per i controlli server HTML si associa strettamente a quello degli elementi corrispondenti. Gli attributi HTML ad esempio, sono esposti nei controlli server HTML sotto forma di proprietà.

Qualsiasi elemento HTML presente in una pagina può essere convertito in un controllo server HTML mediante l'aggiunta dell'attributo . Durante l'analisi, il framework di pagina ASP.NET crea istanze di tutti gli elementi contenenti l'attributo . Se si desidera fare riferimento al controllo come a un membro all'interno del codice, sarà necessario assegnare anche un attributo id al controllo.

Il framework di pagina fornisce controlli server HTML predefiniti per gli elementi HTML utilizzati più di frequente in modo dinamico su una pagina: l'elemento form, gli elementi input (casella di testo, casella di controllo, pulsante di invio), l'elemento select e così via. Questi controlli server HTML predefiniti condividono le proprietà di base del controllo generico e, inoltre, ogni controllo fornisce il proprio gruppo di proprietà e la propria funzione.

I controlli server HTML contengono le funzionalità sotto elencate:

  • Modello a oggetti in base al quale eseguire la programmazione nel server, utilizzando le ormai note tecniche orientate agli oggetti. Per ogni controllo server vengono esposte delle proprietà che consentono di modificare gli attributi del markup del controllo a livello di codice nel codice server.

  • Gruppo di eventi per il quale è possibile scrivere gestori eventi in modo molto simile a quello utilizzato in un form client, con la differenza che l'evento viene gestito nel codice server.

  • Possibilità di gestire gli eventi nello script client.

  • Manutenzione automatica dello stato del controllo. Quando la pagina esegue un round trip al server, i valori immessi dall'utente nei controlli server HTML vengono mantenuti e inviati di nuovo automaticamente al browser.

  • Interazione con i controlli di convalida ASP.NET per verificare che un utente abbia immesso informazioni appropriate in un controllo.

  • Associazione dati a una o più proprietà del controllo.

  • Supporto degli stili se la pagina Web ASP.NET viene visualizzata in un browser che supporta i fogli di stile CSS.

  • Pass-through di attributi personalizzati. È possibile aggiungere qualsiasi attributo si ritenga necessario a un controllo server HTML e ne verrà eseguito il rendering dal framework di pagina senza modificarne la funzionalità. In questo modo è possibile aggiungere attributi specifici del browser ai controlli.

Per informazioni dettagliate su come convertire un elemento HTML in un controllo server HTML, vedere Procedura: aggiungere controlli server HTML a una pagina Web utilizzando la sintassi ASP.NET.

Controlli server Web

I controlli server Web sono un secondo gruppo di controlli progettati con un'enfasi diversa. Questi controlli non sono associati uno-a-uno ai controlli server HTML, ma sono definiti come controlli astratti nei quali il markup effettivo, il cui rendering è eseguito dal controllo, può essere piuttosto diverso dal modello in base al quale lo si programma. È possibile ad esempio eseguire il rendering di un controllo server Web RadioButtonList in una tabella o come testo inline con un altro markup.

Fanno parte dei controlli server Web i controlli per form tradizionali come i pulsanti e le caselle di testo, oltre ai controlli complessi come le tabelle. Sono inclusi anche i controlli che forniscono una funzionalità di form utilizzata più comunemente, come la visualizzazione di dati in una griglia, la scelta delle date, la visualizzazione di menu e così via.

Oltre a offrire tutte le funzionalità sopra descritte per i controlli server HTML, ad eccezione del mapping uno-a-uno degli elementi, i controlli server Web assicurano anche queste funzionalità aggiuntive:

  • Modello a oggetti completo che fornisce funzionalità di programmazione indipendente dai tipi.

  • Rilevamento automatico del browser. I controlli possono rilevare le funzionalità del browser ed eseguire il rendering del markup appropriato.

  • Per alcuni controlli, la capacità di definire il proprio layout per il controllo mediante Templates.

  • Per alcuni controlli, la capacità di specificare se l'evento di un controllo provoca l'invio immediato al server o viene inserito nella cache e attivato al momento dell'invio della pagina.

  • Supporto dei temi che consentono di definire un aspetto uniforme dei controlli in tutto il sito. Per informazioni dettagliate, vedere Temi e interfacce ASP.NET.

  • La capacità di passare gli eventi da un controllo nidificato (come un pulsante in una tabella) al controllo contenitore.

I controlli utilizzano una sintassi simile a quella riportata di seguito.

<asp:button attributes  id="Button1" />

In questo caso gli attributi non sono quelli degli elementi HTML, ma sono proprietà del controllo Web.

Al momento dell'esecuzione della pagina Web ASP.NET, viene eseguito il rendering del controllo server Web sulla pagina con il markup appropriato, che spesso non dipende solo dal tipo di browser ma anche dalle impostazioni definite per il controllo. Il rendering di un controllo TextBox, ad esempio, potrebbe essere eseguito come un tag input o textarea, a seconda delle relative proprietà.

Per ogni controllo sono disponibili informazioni descrittive e di riferimento dettagliate.

Vedere anche

Concetti

Cenni preliminari sui controlli server Web ASP.NET