Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird veranschaulicht, wie statische Elemente und datengebundene Elemente zu einem DropDownList-Steuerelement hinzugefügt werden. Das Beispiel in diesem Artikel füllt ein DropDownList-Steuerelement mit einem anfänglichen Element auf.
Originalproduktversion: Visual C#
Ursprüngliche KB-Nummer: 312489
Anforderungen
Die folgende Liste enthält die empfohlene Hardware und Software, die Sie benötigen:
- Microsoft Windows
- .NET Framework
- Visual Studio .NET
- Internetinformationsdienste (IIS)
- SQL Server
Dieser Artikel bezieht sich auf den folgenden .NET Framework Class Library-Namespace System.Data.SqlClient.
Verwenden von Visual C# zum Erstellen einer ASP.NET Webanwendung
Führen Sie die folgenden Schritte aus, um eine neue ASP.NET Webanwendung mit dem Namen DDLSample zu erstellen:
- Öffnen Sie Visual Studio .NET.
- Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.
- Wählen Sie im Dialogfeld "Neues Projekt" unter "Projekttypen" die Option "Visual C#-Projekte" und dann unter "Vorlagen" ASP.NET Webanwendung aus.
- Ersetzen Sie im Feld "Speicherort" "WebApplication1" in der Standard-URL durch "DDLSample". Wenn Sie den lokalen Server verwenden, können Sie den Servernamen
http://localhostso belassen, dass das Feld "Speicherort " angezeigt wirdhttp://localhost/DDLSample.
Erstellen des Beispiels
In den folgenden Schritten erstellen Sie eine .aspx Seite, die ein DropDownList-Steuerelement enthält. Das DropDownList-Steuerelement ist Daten, die an Spalten der Authors Tabelle aus der SQL Server Pubs-Datenbank gebunden sind.
Führen Sie die folgenden Schritte aus, um dem Projekt ein Webformular hinzuzufügen:
- Klicken Sie mit der rechten Maustaste in Projektmappen-Explorer auf den Projektknoten, wählen Sie "Hinzufügen" und dann "Webformular hinzufügen" aus.
- Benennen Sie die .aspx Seite DropDown.aspx, und wählen Sie dann "Öffnen" aus.
Stellen Sie sicher, dass die Seite in der Entwurfsansicht im Editor geöffnet ist. Fügen Sie der Seite ein DropDownList-Steuerelement hinzu. Ändern Sie im Eigenschaftenbereich die ID des Steuerelements in "AuthorList".
Fügen Sie der Seite nach dem DropDownList-Steuerelement ein Bezeichnungssteuerelement hinzu. Ändern Sie im Eigenschaftenbereich die ID des Steuerelements in CurrentItem.
Fügen Sie der Seite nach dem Bezeichnungssteuerelement ein Schaltflächen-Steuerelement hinzu. Ändern Sie im Eigenschaftenbereich die ID des Steuerelements in "GetItem", und ändern Sie dann die Texteigenschaft in "Element abrufen".
Klicken Sie mit der rechten Maustaste auf die Seite, und wählen Sie dann "Code anzeigen" aus. Dadurch wird die CodeBehind-Klassendatei im Editor geöffnet.
Fügen Sie den
System.Data.SqlClientNamespace der CodeBehind-Klassendatei hinzu, damit der Beispielcode ordnungsgemäß funktioniert. Die vollständige Liste der Namespaces sollte wie folgt angezeigt werden.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;Fügen Sie dem
Page_Load-Ereignis folgenden Code hinzu.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 -->"); } }Wenn Sie die integrierte Sicherheit in der Verbindungszeichenfolge verwenden möchten, ändern Sie die Datei "Web.config " für die Anwendung, und legen Sie das
impersonateAttribut desidentityKonfigurationselements auf "true" fest, wie im folgenden Beispiel gezeigt.<configuration> <system.web> <identity impersonate="true" /> </system.web> </configuration>Weitere Informationen finden Sie unter ASP.NET Identitätswechsel.
Ändern Sie die Verbindungszeichenfolge entsprechend Ihrer Umgebung.
Wechseln Sie zur Entwurfsansicht im Editor für die .aspx-Seite. Doppelklicken Sie auf "GetItem". Fügen Sie dem
GetItem_ClickEreignis in der CodeBehind-Klassendatei den folgenden Code hinzu.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); }Wählen Sie im Menü "Datei " die Option "Alle speichern" aus, um das Webformular und andere zugeordnete Projektdateien zu speichern.
Wählen Sie im Menü "Erstellen" in der Integrierten Entwicklungsumgebung (IDE) von Visual Studio die Option "Erstellen" aus, um das Projekt zu erstellen.
Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf die .aspx Seite, und wählen Sie dann "Im Browser anzeigen" aus. Beachten Sie, dass die Seite im Browser geöffnet wird und dass das Dropdown-Listenfeld mit den anfänglichen Daten aufgefüllt wird.
Wählen Sie ein Element im Dropdown-Listenfeld aus. Beachten Sie, dass das CurrentItem Label-Steuerelement das ausgewählte Element anzeigt. Beachten Sie außerdem, dass die Liste die aktuelle Position und den statischen Eintrag beibehält.
Problembehandlung
- Sie müssen den Code platzieren, um das statische Element der
ListItemAuflistung des Steuerelements nach dem Datenbindungscode hinzuzufügen. Wenn Sie den Code in dieser Reihenfolge nicht hinzufügen, wird die Liste mit dem Datenbindungscode neu erstellt, der den statischen Eintrag überschreibt. - Der Beispielcode überprüft die
IsPostBackEigenschaft, um zu verhindern, dass die Liste erneut erstellt wird. Darüber hinaus überprüftIsPostBackdieser Code, ob das ausgewählte Element an der aktuellen Position der Liste zwischen Roundtrips zum Server beibehalten wird.