Freigeben über


HtmlSelect-Klasse

Ermöglicht den programmgesteuerten Zugriff auf das HTML-<select>-Element auf dem Server.

Namespace: System.Web.UI.HtmlControls
Assembly: System.Web (in system.web.dll)

Syntax

'Declaration
<ValidationPropertyAttribute("Value")> _
Public Class HtmlSelect
    Inherits HtmlContainerControl
    Implements IPostBackDataHandler, IParserAccessor
'Usage
Dim instance As HtmlSelect
[ValidationPropertyAttribute("Value")] 
public class HtmlSelect : HtmlContainerControl, IPostBackDataHandler, IParserAccessor
[ValidationPropertyAttribute(L"Value")] 
public ref class HtmlSelect : public HtmlContainerControl, IPostBackDataHandler, IParserAccessor
/** @attribute ValidationPropertyAttribute("Value") */ 
public class HtmlSelect extends HtmlContainerControl implements IPostBackDataHandler, IParserAccessor
ValidationPropertyAttribute("Value") 
public class HtmlSelect extends HtmlContainerControl implements IPostBackDataHandler, IParserAccessor

Hinweise

Mit dem HtmlSelect-Steuerelement können Sie ein Auswahlfeld erstellen. Elementauflistungen im Steuerelement können Sie angeben, indem Sie HTML-<option>-Elemente zwischen dem öffnenden und dem schließenden <select>-Tag platzieren. Jedes Element wird durch ein System.Web.UI.WebControls.ListItem-Objekt dargestellt. Um den Text anzugeben, der für jedes Element im Steuerelement angezeigt wird, können Sie die ListItem.Text-Eigenschaft des Elements festlegen oder den Text einfach zwischen dem öffnenden und dem schließenden <option>-Tag platzieren. Durch Festlegen der ListItem.Value-Eigenschaft des Elements können Sie dem Element einen Wert zuordnen, der sich vom Text unterscheidet. Wenn Sie ein Element aus der Liste standardmäßig auswählen möchten, legen Sie die ListItem.Selected-Eigenschaft des Elements auf true fest.

Sie können Darstellung und Verhalten des HtmlSelect-Steuerelements durch Festlegen der Size-Eigenschaft und der Multiple-Eigenschaft steuern. Die Size-Eigenschaft gibt die Höhe des Steuerelements in Zeilen an. Die Multiple-Eigenschaft gibt an, ob im HtmlSelect-Steuerelement mehrere Elemente gleichzeitig ausgewählt werden können.

Das HtmlSelect-Steuerelement wird standardmäßig als Dropdown-Listenfeld angezeigt. Wenn Sie Mehrfachauswahl zulassen (durch Festlegen der Multiple-Eigenschaft auf true) oder eine Höhe von mehr als einer Zeile angeben (durch Festlegen der Size-Eigenschaft auf einen Wert größer als 1), wird das Steuerelement als Listenfeld angezeigt.

Wenn Sie das ausgewählte Element in einem HtmlSelect-Steuerelement mit einfacher Auswahl bestimmen möchten, verwenden Sie die SelectedIndex-Eigenschaft, um den Index des ausgewählten Elements abzurufen. Mit diesem Wert können Sie dann das Element aus der Items-Auflistung abrufen.

Zum Bestimmen der ausgewählten Elemente in einem HtmlSelect-Steuerelement, das Mehrfachauswahl zulässt, durchlaufen Sie die Items-Auflistung, und testen Sie die ListItem.Selected-Eigenschaft der jeweiligen Elemente.

Die HtmlSelect-Klasse stellt zur Unterstützung der Datenbindung zwei Eigenschaften bereit. Zum Binden der Daten an ein beliebiges Objekt, das die System.Collections.IEnumerable-Schnittstelle (z. B. System.Data.DataView, System.Collections.ArrayList und System.Collections.Hashtable) oder die IListSource-Schnittstelle implementiert geben Sie mit der DataSource-Eigenschaft die Datenquelle für die Bindung an. Wenn Sie die DataSource-Eigenschaft festlegen, müssen Sie den Code zum Durchführen der Datenbindung manuell schreiben. Verwenden Sie zum automatischen Binden eines HtmlSelect-Steuerelements an eine durch ein Datenquellensteuerelement dargestellte Datenquelle die DataSourceID-Eigenschaft, und legen Sie ihren Wert auf die ID-Eigenschaft des zu verwendenden Datenquellensteuerelements fest. Wenn Sie die DataSourceID-Eigenschaft festlegen, wird das HtmlSelect-Steuerelement automatisch an das angegebene Datenquellensteuerelement gebunden. Daher müssen Sie die DataBind-Methode nicht explizit aufrufen.

Sie können auch angeben, welche Felder in der Datenquelle an die ListItem.Text-Eigenschaft und die ListItem.Value-Eigenschaft eines Elements im Steuerelement gebunden wird, indem Sie die DataTextField-Eigenschaft bzw. die DataValueField-Eigenschaft festlegen. Wenn die Datenquelle mehrere Quellen von Daten enthält, geben Sie mit der DataMember-Eigenschaft die genaue Quelle an, die an das Steuerelement gebunden werden soll. Bei einem System.Data.DataSet-Objekt mit mehreren Tabellen müssen Sie z. B. mit der DataMember-Eigenschaft angeben, welche Tabelle an das Steuerelement gebunden werden soll.

Eine Liste der anfänglichen Eigenschaftenwerte für eine Instanz von HtmlSelect finden Sie unter HtmlSelect-Konstruktor.

Thema Position
Gewusst wie: Hinzufügen von HTML-Serversteuerelementen zu einer Webseite mithilfe von ASP.NET-Syntax Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Programmgesteuertes Festlegen der Eigenschaften von HTML-Serversteuerelementen Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Hinzufügen von HTML-Serversteuerelementen zu einer Webseite mithilfe von ASP.NET-Syntax Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Programmgesteuertes Festlegen der Eigenschaften von HTML-Serversteuerelementen Erstellen von ASP.NET-Webanwendungen in Visual Studio
Gewusst wie: Hinzufügen von HTML-Serversteuerelementen zu einer Webseite mithilfe von ASP.NET-Syntax Erstellen von ASP.NET-Webanwendungen
Gewusst wie: Programmgesteuertes Festlegen der Eigenschaften von HTML-Serversteuerelementen Erstellen von ASP.NET-Webanwendungen

Beispiel

Im folgenden Codebeispiel wird das Erstellen eines HtmlSelect-Steuerelements durch explizites Deklarieren der Elemente veranschaulicht, die im Steuerelement angezeigt werden.

<%@ Page Language="VB" AutoEventWireup="True" %>

<html>

<head>

   <script runat="server">

      Sub Button_Click (sender As Object, e As EventArgs)
        
         Dim i As Integer

         Label1.Text = "You selected:"

         For i = 0 to Select1.Items.Count - 1
  
            If Select1.Items(i).Selected Then
               Label1.Text = Label1.Text & "<br> &nbsp;&nbsp; -" & Select1.Items(i).Text
            End If         

         Next i

      End Sub

   </script>

</head>

<body>

   <form runat="server">

      <h3> HtmlSelect Example </h3>

      Select items from the list: <br><br>

      <select id="Select1" 
              Multiple="True"
              runat="server">

         <option value="1" Selected="True"> Item 1 </option>
         <option value="2"> Item 2 </option>
         <option value="3"> Item 3 </option>
         <option value="4"> Item 4 </option>
         <option value="5"> Item 5 </option>
         <option value="6"> Item 6 </option>

      </select>

      <br><br>

      <button id="Button1"
              OnServerClick="Button_Click"
              runat="server">

         Submit

      </button>

      <br><br>

      <asp:Label id="Label1"
           runat="server"/>

   </form>

</body>

</html>
<%@ Page Language="C#" AutoEventWireup="True" %>

<html>

<head>

   <script runat="server">

      void Button_Click (Object sender, EventArgs e)
      {
        
         Label1.Text = "You selected:";

         for (int i=0; i<=Select1.Items.Count - 1; i++)
         {
            if (Select1.Items[i].Selected)
               Label1.Text += "<br> &nbsp;&nbsp; -" + Select1.Items[i].Text;
         }

      }

   </script>

</head>

<body>

   <form runat="server">

      <h3> HtmlSelect Example </h3>

      Select items from the list: <br><br>

      <select id="Select1" 
              Multiple="True"
              runat="server">

         <option value="1" Selected="True"> Item 1 </option>
         <option value="2"> Item 2 </option>
         <option value="3"> Item 3 </option>
         <option value="4"> Item 4 </option>
         <option value="5"> Item 5 </option>
         <option value="6"> Item 6 </option>

      </select>

      <br><br>

      <button id="Button1"
              OnServerClick="Button_Click"
              runat="server">

         Submit

      </button>

      <br><br>

      <asp:Label id="Label1"
           runat="server"/>

   </form>

</body>

</html>
<%@ Page Language="JScript" AutoEventWireup="True" %>

<html>

<head>

   <script runat="server">

      function Button_Click (sender : Object, e : EventArgs)
      {
        
         Label1.Text = "You selected:";

         for (var i : int = 0; i <= Select1.Items.Count - 1; i++)
         {
            if (Select1.Items[i].Selected)
               Label1.Text += "<br> &nbsp;&nbsp; -" + Select1.Items[i].Text;
         }

      }

   </script>

</head>

<body>

   <form runat="server">

      <h3> HtmlSelect Example </h3>

      Select items from the list: <br><br>

      <select id="Select1" 
              Multiple="True"
              runat="server">

         <option value="1" Selected="True"> Item 1 </option>
         <option value="2"> Item 2 </option>
         <option value="3"> Item 3 </option>
         <option value="4"> Item 4 </option>
         <option value="5"> Item 5 </option>
         <option value="6"> Item 6 </option>

      </select>

      <br><br>

      <button id="Button1"
              OnServerClick="Button_Click"
              runat="server">

         Submit

      </button>

      <br><br>

      <asp:Label id="Label1"
           runat="server"/>

   </form>

</body>

</html>

Im folgenden Codebeispiel wird das Erstellen eines HtmlSelect-Steuerelements durch Binden des Steuerelements an eine Datenquelle veranschaulicht.

<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<html>

<head>

   <script runat="server">

      Sub Page_Load (sender As Object, e As EventArgs)
  
        ' Bind the HtmlSelect control to a data source when the page is initially loaded.
        If Not IsPostBack Then
        
           ' Open a connection to the database and run the query.
           ' Note that the connection string may vary depending on your
           ' database server settings.
           Dim ConnectString As String = "server=localhost;database=pubs;integrated security=SSPI"
           Dim QueryString As String = "select * from authors"

           Dim myConnection As SqlConnection = New SqlConnection(ConnectString)
           Dim myCommand As SqlDataAdapter = New SqlDataAdapter(QueryString, myConnection)

           ' Create a dataset to store the query results.
           Dim ds As DataSet = New DataSet()
           myCommand.Fill(ds, "Authors")

           ' Bind the HtmlSelect control to the data source.
           Select1.DataSource = ds
           Select1.DataTextField = "au_fname"
           Select1.DataValueField = "au_fname"
           Select1.DataBind()
        
        End If

      End Sub

      Sub Button_Click (sender As Object, e As EventArgs)
        
         Dim i As Integer

         Label1.Text = "You selected:"

         For i = 0 To Select1.Items.Count - 1
         
            If Select1.Items(i).Selected Then
               Label1.Text = Label1.Text & "<br> &nbsp;&nbsp; - " & Select1.Items(i).Text
            End If

         Next i

      End Sub

   </script>

</head>

<body>

   <form runat="server">

      <h3> HtmlSelect Example </h3>

      Select items from the list. <br>
      Use the Control or Shift key to select multiple items. <br><br>

      <select id="Select1"
              Multiple="True" 
              runat="server"/>

      <br><br>

      <button id="Button1"
              OnServerClick="Button_Click"
              runat="server">

         Submit

      </button>

      <br><br>

      <asp:Label id="Label1"
           runat="server"/>

   </form>

</body>

</html>
<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<html>

<head>

   <script runat="server">

      void Page_Load (Object sender, EventArgs e)
      {

        // Bind the HtmlSelect control to a data source when the page is initially loaded.
        if (!IsPostBack)
        {
      
           // Open a connection to the database and run the query.
           // Note that the connection string may vary depending on your
           // database server settings. 
           string ConnectString = "server=localhost;database=pubs;integrated security=SSPI";
           string QueryString = "select * from authors";

           SqlConnection myConnection = new SqlConnection(ConnectString);
           SqlDataAdapter myCommand = new SqlDataAdapter(QueryString, myConnection);

           // Create a dataset to store the query results.
           DataSet ds = new DataSet();
           myCommand.Fill(ds, "Authors");

           // Bind the HtmlSelect control to the data source.
           Select1.DataSource = ds;
           Select1.DataTextField = "au_fname";
           Select1.DataValueField = "au_fname";
           Select1.DataBind();
        }

      }

      void Button_Click (Object sender, EventArgs e)
      {
       
         // Display the selected items. 
         Label1.Text = "You selected:";

         for (int i=0; i<=Select1.Items.Count - 1; i++)
         {
            if (Select1.Items[i].Selected)
               Label1.Text += "<br> &nbsp;&nbsp; - " + Select1.Items[i].Text;
         }

      }

   </script>

</head>

<body>

   <form runat="server">

      <h3> HtmlSelect Example </h3>

      Select items from the list. <br>
      Use the Control or Shift key to select multiple items. <br><br>

      <select id="Select1"
              Multiple="True" 
              runat="server"/>

      <br><br>

      <button id="Button1"
              OnServerClick="Button_Click"
              runat="server">

         Submit

      </button>

      <br><br>

      <asp:Label id="Label1"
           runat="server"/>

   </form>

</body>

</html>
<%@ Page Language="JScript" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<html>

<head>

   <script runat="server">

      function Page_Load (sender : Object, e : EventArgs) : void
      {

        // Bind the HtmlSelect control to a data source when the page is initially loaded.
        if (!IsPostBack)
        {
      
           // Open a connection to the database and run the query.
           // Note that the connection string may vary depending on your
           // database server settings. 
           var ConnectString : String = "server=localhost;database=pubs;integrated security=SSPI";
           var QueryString : String = "select * from authors";

           var myConnection : SqlConnection = new SqlConnection(ConnectString);
           var myCommand : SqlDataAdapter = new SqlDataAdapter(QueryString, myConnection);

           // Create a dataset to store the query results.
           var ds : DataSet  = new DataSet();
           myCommand.Fill(ds, "Authors");

           // Bind the HtmlSelect control to the data source.
           Select1.DataSource = ds;
           Select1.DataTextField = "au_fname";
           Select1.DataValueField = "au_fname";
           Select1.DataBind();
        }

      }

      function Button_Click (sender : Object, e : EventArgs) : void
      {
       
         // Display the selected items. 
         Label1.Text = "You selected:";

         for (var i: int=0; i<=Select1.Items.Count - 1; i++)
         {
            if (Select1.Items[i].Selected)
               Label1.Text += "<br> &nbsp;&nbsp; - " + Select1.Items[i].Text;
         }

      }

   </script>

</head>

<body>

   <form runat="server">

      <h3> HtmlSelect Example </h3>

      Select items from the list. <br>
      Use the Control or Shift key to select multiple items. <br><br>

      <select id="Select1"
              Multiple="True" 
              runat="server"/>

      <br><br>

      <button id="Button1"
              OnServerClick="Button_Click"
              runat="server">

         Submit

      </button>

      <br><br>

      <asp:Label id="Label1"
           runat="server"/>

   </form>

</body>

</html>

Im folgenden Codebeispiel wird veranschaulicht, wie mit der DataSourceID-Eigenschaft die Datenquelle für ein HtmlSelect-Steuerelement angegeben wird. Die DataSourceID-Eigenschaft wird auf die ID-Eigenschaft des SqlDataSource-Steuerelements festgelegt, mit dem die Daten abgerufen werden. Beim Laden der Seite stellt das HtmlSelect-Steuerelement automatisch die Bindung zu der durch das SqlDataSource-Steuerelement angegebenen Datenquelle her, und die Daten werden angezeigt.

<%@ page language="VB" %>

<html>
<head runat="server">
    <title>HtmlSelect.DataSourceID</title>
</head>
<body>
  <form id="Form1" runat="server">  

    <h3> HtmlSelect.DataSourceID Example </h3>

    <p>Select an item from the list</p>

    <select id="Select1"
      name="Select1"
      DataSourceId="SqlDataSource1"
      DataTextField="ProductName"
      runat="server">
    </select>
       
    <asp:sqldatasource id="SqlDataSource1"        
          connectionstring="workstation id=localhost;integrated security=SSPI;initial catalog=Northwind"
      selectcommand="SELECT * FROM [Products] Where ProductID <= 5"
      runat="server">
    </asp:sqldatasource>

   </form>

</body>

</html>
<%@ page language="C#" %>

<html>
<head id="Head1" runat="server">
    <title>HtmlSelect.DataSourceID</title>
</head>
<body>
  <form id="Form1" runat="server">  

    <h3> HtmlSelect.DataSourceID Example </h3>

    <p>Select an item from the list</p>

    <select id="Select1"
      name="Select1"
      DataSourceId="SqlDataSource1"
      datatextfield="ProductName"
      runat="server">
    </select>
       
    <asp:sqldatasource id="SqlDataSource1"        
          connectionstring="workstation id=localhost;integrated security=SSPI;initial catalog=Northwind"
      selectcommand="SELECT * FROM [Products] Where ProductID <= 5"
      runat="server">
    </asp:sqldatasource>

   </form>

</body>

</html>

.NET Framework-Sicherheit

Vererbungshierarchie

System.Object
   System.Web.UI.Control
     System.Web.UI.HtmlControls.HtmlControl
       System.Web.UI.HtmlControls.HtmlContainerControl
        System.Web.UI.HtmlControls.HtmlSelect

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

HtmlSelect-Member
System.Web.UI.HtmlControls-Namespace
Size
Multiple
SelectedIndex
Items
System.Web.UI.WebControls.ListItem
System.Web.UI.WebControls.ListItemCollection
DataSource
DataSourceID
DataMember
System.Data.DataSet
DataTextField
ListItem.Text
DataValueField
ListItem.Value
InnerHtml
InnerText

Weitere Ressourcen

HTML-Serversteuerelemente