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.SqlClient
della 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:
- Aprire Visual Studio .NET.
- Nel menu File puntare su Nuovo, quindi scegliere Progetto.
- Nella finestra di dialogo Nuovo progetto selezionare Progetti Visual C# in Tipi di progetto e quindi selezionare ASP.NET'applicazione Web in Modelli.
- 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 visualizzatohttp://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.
Per aggiungere un Web Form al progetto, seguire questa procedura:
- Fare clic con il pulsante destro del mouse sul nodo del progetto in Esplora soluzioni, selezionare Aggiungi e quindi selezionare Aggiungi web form.
- Assegnare un nome alla pagina .aspx DropDown.aspx e quindi selezionare Apri.
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.
Aggiungere un controllo Label alla pagina dopo il controllo DropDownList. Nel riquadro Proprietà modificare l'ID del controllo in CurrentItem.
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.
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.
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;
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'elementoidentity
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.
Modificare il stringa di connessione in base alle esigenze dell'ambiente.
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); }
Scegliere Salva tutto dal menu File per salvare il Web Form e altri file di progetto associati.
Nel menu Compila nell'ambiente di sviluppo integrato (IDE) di Visual Studio .NET selezionare Compila per compilare il progetto.
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.
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 verificaIsPostBack
di mantenere l'elemento selezionato nella posizione corrente dell'elenco tra round trip al server.
Riferimenti
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per