Sviluppo di controlli utente in un file di codice sottostante

Così come è possibile creare pagine Web Form utilizzando file di codice sottostanti, separando cioè la sintassi dell'interfaccia (nel file ASPX) dalla logica eseguita dalla pagina (il file di codice sottostante), è possibile fare altrettanto per creare i controlli utente. Le tecniche sono le stesse, con piccole differenze.

Nota   Se per creare le applicazioni ASP.NET si utilizza uno strumento RAD (Rapid Application Development) come Visual Studio .NET, in base all'impostazione predefinita, tale strumento genererà i controlli utente e le pagine Web Form adottando tecniche di progettazione che prevedono l'impiego di codice sottostante. Quando si crea un'applicazione Web utilizzando Visual Studio .NET, tutte le pagine e i controlli utente dell'applicazione devono essere scritti con lo stesso linguaggio di programmazione.

Per sviluppare controlli utente in un file di codice sottostante

  1. Creare un file di codice sottostante che includa gli spazi dei nomi a cui è necessario che acceda il controllo utente. È opportuno includere almeno gli spazi dei nomi System e System.Web.UI, oltre agli altri spazi dei nomi richiesti dal controllo utente.

    Imports System
    Imports System.Web.UI
    Imports System.Web.UI.WebControls
    [C#]
    using System;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
  2. Dichiarare una classe che eredita dalla classe UserControl e scrivere codice che fornisca le funzionalità desiderate. Includere i metodi di gestione eventi che si desidera scrivere per il controllo utente. Dichiarare inoltre istanze pubbliche dei controlli server ASP.NET che si intende utilizzare nel controllo utente.

    Public Class MyCodeBehind
    Inherits UserControl
    
        Public Name As TextBox
        Public Result As Label
    
        Public Sub SubmitBtn_Click(sender As Object, e As EventArgs)
            Result.Text = "Hi, " & Name.Text & ", welcome to ASP.NET!"
        End Sub
    End Class
    [C#]
    public class MyCodeBehind : UserControl {
        public TextBox   Name;
        public Label   Result;
    
        public void SubmitBtn_Click(Object sender, EventArgs e) {
            Result.Text = "Hi, " + Name.Text + ", welcome to ASP.NET!";   
        }
    }
    
  3. Assegnare un nome al file di codice sottostante, assicurandosi di aggiungervi un'estensione che indichi il linguaggio in cui è stato sviluppato il file. In caso contrario, si verificherà un errore di compilazione. In questo esempio il controllo utente sviluppato in Visual Basic è denominato UserControl.vb e quello sviluppato in C# è denominato UserControl.cs.

  4. Creare un file ASCX utilizzando la direttiva @ Control per indicare il nome della classe ereditata dal controllo utente e il percorso del file di origine creato al passaggio 1. Includere i controlli server e l'eventuale testo che si desidera venga visualizzato dal controllo utente. Quando si dichiara l'attributo ID di ciascun controllo server, assicurarsi che corrisponda al nome dell'istanza creata nel file di codice sottostante. L'attributo ID dell'elemento <asp:textbox/> riportato di seguito è ad esempio Name e corrisponde al controllo server Name TextBox del passaggio 2.

    <%@ control inherits = "MyCodeBehind" src = "UserControl.vb" %>
    <p>Name: <asp:textbox id="Name" runat="server"/> <br>
    <asp:button text="Click Me" OnClick="SubmitBtn_Click" runat="server"/><br>
    <asp:label id="Result" runat = "server" />
    [C#]
    <%@ control inherits = "MyCodeBehind" src = "UserControl.cs" %>
    <p>Name: <asp:textbox id="Name" runat="server"/> <br>
    <asp:button text="Click Me" OnClick="SubmitBtn_Click" runat="server"/><br>
    <asp:label id="Result" runat = "server" />
    
  5. Includere il controllo utente nelle pagine Web Form in cui si desidera visualizzarne le funzionalità. Per ulteriori informazioni, vedere Inclusione di un controllo utente in una pagina Web Form.

Vedere anche

Introduzione ai controlli utente Web Form | Modello di codice di Web Form | Inclusione di un controllo utente in una pagina Web Form | @ Control | UserControl