panoramica dei controlli server ASP.NET

Questo articolo presenta ASP.NET controlli server, ad esempio controlli server HTML, controlli server Web, controlli elenco e così via.

Versione originale del prodotto: ASP.NET
Numero KB originale: 306459

Questo articolo fa riferimento agli spazi dei nomi della libreria di classi di Microsoft .NET Framework seguenti:

  • System.Web.UI.HtmlControls.HtmlControl
  • System.Web.UI.WebControls.WebControl

Controlli server nel framework di pagine ASP.NET

Il framework di pagina ASP.NET include una serie di controlli server predefiniti progettati per fornire un modello di programmazione più strutturato per il Web. Questi controlli offrono le funzionalità seguenti:

  • Gestione automatica dello stato.
  • Accesso semplice ai valori dell'oggetto senza dover usare l'oggetto Request .
  • Possibilità di reagire agli eventi nel codice sul lato server per creare applicazioni più strutturate.
  • Approccio comune alla creazione di interfacce utente per le pagine Web.
  • L'output viene personalizzato automaticamente in base alle funzionalità del browser.

Oltre ai controlli predefiniti, il framework di pagine ASP.NET offre anche la possibilità di creare controlli utente e controlli personalizzati. I controlli utente e i controlli personalizzati possono migliorare ed estendere i controlli esistenti per creare un'interfaccia utente molto più completa.

Controlli server HTML

I controlli server HTML sono elementi HTML che includono un runat=server attributo. I controlli server HTML hanno lo stesso output HTML e le stesse proprietà dei tag HTML corrispondenti. Inoltre, i controlli server HTML forniscono la gestione automatica dello stato e gli eventi sul lato server. I controlli server HTML offrono i vantaggi seguenti:

  • I controlli server HTML vengono mappati uno a uno con i tag HTML corrispondenti.
  • Quando l'applicazione ASP.NET viene compilata, i controlli server HTML con l'attributo runat=server vengono compilati nell'assembly.
  • La maggior parte dei controlli include un OnServerEvent oggetto per l'evento più comunemente usato per il controllo. Ad esempio, il <input type=button> controllo ha un OnServerClick evento .
  • I tag HTML non implementati come controlli server HTML specifici possono comunque essere usati sul lato server; tuttavia, vengono aggiunti all'assembly come HtmlGenericControl.
  • Quando la pagina ASP.NET viene ripubblitata, i controlli server HTML mantengono i relativi valori.

La System.Web.UI.HtmlControls.HtmlControl classe di base contiene tutte le proprietà comuni. I controlli server HTML derivano da questa classe.

Per usare un controllo server HTML, usare la sintassi seguente ( che usa il HtmlInputText controllo come esempio):

<input type="text" value="hello world" runat=server />

Per altre informazioni sui singoli controlli server HTML disponibili in ASP.NET, vedere i siti Web seguenti:

Controlli server Web

I controlli Web sono simili ai controlli server HTML, ad esempio Button, TextBox e Hyperlink, ad eccezione del fatto che i controlli Web hanno un set standardizzato di nomi di proprietà. I controlli server Web offrono i vantaggi seguenti:

  • Semplificare la creazione di strumenti o applicazioni che generano automaticamente l'interfaccia utente per produttori e sviluppatori.
  • Semplificare il processo di creazione di web form interattivi, che richiede una minore conoscenza del funzionamento dei controlli HTML e rende l'attività di utilizzo meno soggetta a errori.

La System.Web.UI.WebControls.WebControl classe di base contiene tutte le proprietà comuni. La maggior parte dei controlli server Web deriva da questa classe.

Per usare un controllo server Web, usare la sintassi seguente, che usa il controllo TextBox come esempio:

<asp:textbox text="hello world" runat=server />

I controlli server Web possono essere suddivisi in quattro categorie:

  • Controlli Web di base
  • Controlli di convalida
  • Controlli elenco
  • Controlli avanzati

Controlli Web di base

I controlli Web di base offrono la stessa funzionalità delle controparti dei controlli server HTML. Tuttavia, i controlli Web di base includono metodi, eventi e proprietà aggiuntivi per i quali è possibile programmare.

Per altre informazioni sui singoli controlli Web disponibili in ASP.NET, vedere i siti Web seguenti:

Controlli di convalida

I controlli di convalida vengono usati per convalidare i valori immessi in altri controlli della pagina. I controlli di convalida eseguono la convalida lato client, la convalida lato server o entrambi, a seconda delle funzionalità del browser in cui viene visualizzata la pagina. I controlli di convalida offrono i vantaggi seguenti:

  • È possibile associare uno o più controlli di convalida a ogni controllo che si vuole convalidare.
  • La convalida viene eseguita quando viene inviato il modulo di pagina.
  • È possibile specificare a livello di codice se deve essere eseguita la convalida, che è utile se si desidera fornire un pulsante annulla in modo che l'utente possa uscire senza dover compilare dati validi in tutti i campi.
  • I controlli di convalida rilevano automaticamente se la convalida deve essere eseguita sul lato client o sul lato server.

Nota

Una convalida lato client rileva gli errori prima del completamento di un'operazione di postback. Pertanto, se si dispone di combinazioni di controlli di convalida lato client e lato server in una singola pagina, la convalida sul lato server verrà annullata se la convalida sul lato client non riesce. Per altre informazioni sui singoli controlli di convalida disponibili in ASP.NET, vedere i siti Web seguenti:

Elencare i controlli

I controlli elenco sono controlli server Web speciali che supportano l'associazione alle raccolte. È possibile usare i controlli elenco per visualizzare righe di dati in un formato personalizzato del modello. Tutti i controlli elenco espongono le proprietà DataSource e DataMember, usate per l'associazione alle raccolte.

I controlli elenco possono essere associati solo alle raccolte che supportano le interfacce IEnumerable, ICollection o IListSource. Ad esempio, viene visualizzata una pagina di esempio di Visual C# .NET come indicato di seguito:

<%@ Page Language="C#" %>
<script runat="server">
    Public void Page_Load()
    {
        String[] myStringArray = new String[] {"one","two","three"};
        rptr.DataSource = myStringArray;
        rptr.DataBind();
    }
</script>
<html>
    <body>
        <asp:repeater id=rptr runat="server">
            <itemtemplate><%# Container.DataItem %><br></itemtemplate>
        </asp:repeater>
    </body>
</html>

Di seguito viene visualizzata una pagina di esempio .NET di Visual Basic:

<%@ Page Language="vb" %>
<script runat="server">
    public sub Page_Load()
        Dim myStringArray as String()
        myStringArray = new String() {"one","two","three"}
        rptr.DataSource = myStringArray
        rptr.DataBind()
    end sub
</script>
<html>
    <body>
        <asp:repeater id=rptr runat="server">
            <itemtemplate><%# Container.DataItem %><br></itemtemplate>
        </asp:repeater>
    </body>
</html>

L'output viene visualizzato come segue:

  • Nessuno
  • Due
  • Tre

Per altre informazioni sui singoli controlli elenco disponibili in ASP.NET, vedere i siti Web seguenti:

Controlli avanzati

Oltre ai controlli precedenti, il framework di pagina ASP.NET fornisce alcuni controlli specifici delle attività denominati controlli avanzati. I controlli avanzati sono compilati con più elementi HTML e contengono funzionalità avanzate. Esempi di controlli avanzati sono il controllo Calendar e il controllo AdRotator.

Per altre informazioni sui singoli controlli avanzati disponibili in ASP.NET, vedere i siti Web seguenti:

Controlli utente

Spesso, è possibile riutilizzare l'interfaccia utente del Web Form senza dover scrivere codice aggiuntivo. ASP.NET consente di eseguire questa operazione convertendo il Web Forms in controlli utente. I controlli utente, che hanno l'estensione di file ascx, possono essere usati più volte all'interno di un singolo Web Form.

Per convertire un Web Form in un controllo utente, seguire questa procedura:

  1. Rimuovere tutti i <html>tag , <head>, <body>e <form> .
  2. Se la @ Page direttiva viene visualizzata nella pagina, modificarla in @ Control.
  3. Includere un className attributo nella direttiva in @ Control modo che il controllo utente venga tipizzato con forza quando si crea un'istanza.
  4. Assegnare al controllo un nome di file descrittivo e modificare l'estensione del file da .aspx a ascx.

Per altre informazioni sui controlli utente, vedere Web Forms Controlli utente.

Controlli personalizzati

Oltre ai controlli Web predefiniti, ASP.NET consente anche di creare controlli personalizzati. Può essere utile sviluppare controlli personalizzati se ci si trova di fronte a uno di questi scenari:

  • È necessario combinare la funzionalità di due o più controlli Web predefiniti.
  • È necessario estendere la funzionalità di un controllo predefinito.
  • È necessario un controllo diverso da tutti i controlli attualmente esistenti.

Per altre informazioni sullo sviluppo di controlli personalizzati, vedere gli argomenti seguenti: