Aggiungere elementi statici e risultati usando Visual C# dal data binding a un controllo DropDownList

Questo articolo illustra come aggiungere elementi statici ed elementi associati a dati a un controllo DropDownList. L'esempio in questo articolo popola un controllo DropDownList con un elemento iniziale.

Versione originale del prodotto: Oggetto visivo C#
Numero KB originale: 312489

Requisiti

L'elenco seguente descrive l'hardware e il software consigliati necessari:

  • Microsoft Windows
  • .NET Framework
  • Visual Studio .NET
  • Internet Information Services (IIS)
  • SQL Server

Questo articolo fa riferimento allo spazio dei nomi System.Data.SqlClientdella libreria di classi .NET Framework seguente.

Usare Visual C# per creare un'applicazione Web ASP.NET

Per creare una nuova applicazione Web ASP.NET denominata DDLSample, seguire questa procedura:

  1. Aprire Visual Studio .NET.
  2. Nel menu File puntare su Nuovo, quindi scegliere Progetto.
  3. Nella finestra di dialogo Nuovo progetto selezionare Progetti Visual C# in Tipi di progetto e quindi selezionare ASP.NET'applicazione Web in Modelli.
  4. Nella casella Percorso sostituire WebApplication1 nell'URL predefinito con DDLSample. Se si usa il server locale, è possibile lasciare il nome del server come http://localhost in modo che nella casella Percorso venga visualizzato http://localhost/DDLSample.

Creare l'esempio

Nei passaggi seguenti viene creata una pagina di .aspx che contiene un controllo DropDownList. Il controllo DropDownList è associato a dati associati alle colonne della Authors tabella dal database SQL Server Pubs.

  1. Per aggiungere un Web Form al progetto, seguire questa procedura:

    1. Fare clic con il pulsante destro del mouse sul nodo del progetto in Esplora soluzioni, selezionare Aggiungi e quindi selezionare Aggiungi web form.
    2. Assegnare un nome alla pagina .aspx DropDown.aspx e quindi selezionare Apri.
  2. Assicurarsi che la pagina sia aperta nella visualizzazione Progettazione nell'editor. Aggiungere un controllo DropDownList alla pagina. Nel riquadro Proprietà modificare l'ID del controllo in AuthorList.

  3. Aggiungere un controllo Label alla pagina dopo il controllo DropDownList. Nel riquadro Proprietà modificare l'ID del controllo in CurrentItem.

  4. Aggiungere un controllo Button alla pagina dopo il controllo Label. Nel riquadro Proprietà modificare l'ID del controllo in GetItem e quindi modificare la proprietà Text in Get Item.

  5. Fare clic con il pulsante destro del mouse sulla pagina e quindi scegliere Visualizza codice. Verrà aperto il file di classe code-behind nell'editor.

  6. Aggiungere lo System.Data.SqlClient spazio dei nomi al file di classe code-behind in modo che il codice di esempio funzioni correttamente. L'elenco completo degli spazi dei nomi dovrebbe essere visualizzato come segue.

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;
    
  7. Aggiungere il codice seguente all'evento Page_Load .

    private void Page_Load (object sender, System.EventArgs e)
    {
        if (!IsPostBack)
        {
            SqlConnection myConn = new SqlConnection (
                "Server=localhost;Database=Pubs;Integrated Security=SSPI");
            SqlCommand myCmd = new SqlCommand (
                "SELECT au_id, au_lname FROM Authors", myConn);
            myConn.Open ();
            SqlDataReader myReader = myCmd.ExecuteReader ();
    
            //Set up the data binding.
            AuthorList.DataSource = myReader;
            AuthorList.DataTextField = "au_lname";
            AuthorList.DataValueField = "au_id";
            AuthorList.DataBind ();
    
            //Close the connection.
            myConn.Close ();
            myReader.Close ();
    
            //Add the item at the first position.
            AuthorList.Items.Insert (0, "<-- Select -->");
        }
    }
    

    Per usare La sicurezza integrata nella stringa di connessione, modificare il file Web.config per l'applicazione e impostare l'attributo impersonate dell'elemento identity di configurazione su true, come illustrato nell'esempio seguente.

    <configuration>
        <system.web>
            <identity impersonate="true" />
        </system.web>
    </configuration>
    

    Per altre informazioni, vedere ASP.NET Rappresentazione.

  8. Modificare il stringa di connessione in base alle esigenze dell'ambiente.

  9. Passare alla visualizzazione Progettazione nell'editor per la pagina .aspx. Fare doppio clic su GetItem. Aggiungere il codice seguente all'evento GetItem_Click nel file di classe code-behind.

    private void GetItem_Click (object sender, System.EventArgs e)
    {
        string itemText = AuthorList.SelectedItem.Text;
        string itemValue = AuthorList.SelectedItem.Value;
        CurrentItem.Text = string.Format (
            "Selected Text is {0}, and Value is {1}", itemText, itemValue);
    }
    
  10. Scegliere Salva tutto dal menu File per salvare il Web Form e altri file di progetto associati.

  11. Nel menu Compila nell'ambiente di sviluppo integrato (IDE) di Visual Studio .NET selezionare Compila per compilare il progetto.

  12. In Esplora soluzioni fare clic con il pulsante destro del mouse sulla pagina .aspx e quindi scegliere Visualizza nel browser. Si noti che la pagina viene aperta nel browser e che la casella di riepilogo a discesa viene popolata con i dati iniziali.

  13. Selezionare un elemento nella casella di riepilogo a discesa. Si noti che il controllo CurrentItem Label visualizza l'elemento selezionato. Si noti inoltre che l'elenco mantiene la posizione corrente e la voce statica.

Risoluzione dei problemi

  • È necessario inserire il codice per aggiungere l'elemento statico alla ListItem raccolta del controllo dopo il codice di data binding. Se non si aggiunge il codice in questo ordine, l'elenco viene ricreato con il codice di data binding, che sovrascrive la voce statica.
  • Il codice di esempio controlla la IsPostBack proprietà per impedire la ricreazione dell'elenco. Inoltre, questo codice verifica IsPostBack di mantenere l'elemento selezionato nella posizione corrente dell'elenco tra round trip al server.

Riferimenti