Share via


HtmlSelect.DataSource Eigenschaft

Definition

Ruft die Datenquelle ab, die an das HtmlSelect-Steuerelement gebunden werden soll oder legt diese fest.

public:
 virtual property System::Object ^ DataSource { System::Object ^ get(); void set(System::Object ^ value); };
public virtual object DataSource { get; set; }
member this.DataSource : obj with get, set
Public Overridable Property DataSource As Object

Eigenschaftswert

Object

Ein IEnumerable oder ein IListSource, das eine Werteauflistung zum Bereitstellen von Daten für dieses Steuerelement enthält. Der Standardwert ist null.

Ausnahmen

Die angegebene Datenquelle ist entweder mit IEnumerable oder mit IListSource nicht kompatibel, und sie ist nicht null.

Die Datenquelle kann nicht aufgelöst werden, weil sowohl für die DataSource-Eigenschaft als auch für die DataSourceID-Eigenschaft ein Wert angegeben wurde.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie sie mithilfe der DataSource Eigenschaft die Quelle von Informationen angeben, die an das HtmlSelect Steuerelement gebunden werden sollen.

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >

<head>
    <title> HtmlSelect Example </title>
<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 />    - " + Select1.Items[i].Text;
         }

      }

   </script>

</head>

<body>

   <form id="form1" 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="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >

<head>
    <title> HtmlSelect Example </title>
<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 />    - " & Select1.Items(i).Text
            End If

         Next i

      End Sub

   </script>

</head>

<body>

   <form id="form1" 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>

Hinweise

Verwenden Sie die DataSource Eigenschaft, um die Datenquelle anzugeben, die an das HtmlSelect Steuerelement gebunden werden soll. Eine Datenquelle muss eine Auflistung sein, die entweder die System.Collections.IEnumerable Schnittstelle (z System.Data.DataView. B. , System.Collections.ArrayListoder ) oder System.Collections.Generic.List<T>die IListSource Schnittstelle implementiert. Wenn Sie die DataSource Eigenschaft festlegen, müssen Sie den Code manuell schreiben, um die Datenbindung auszuführen.

Wenn die Datenquelle mehrere Datensätze enthält, z. B. ein System.Data.DataSet Objekt mit mehreren Tabellen, verwenden Sie die DataMember Eigenschaft, um anzugeben, welche Datensätze an das Steuerelement gebunden werden sollen.

Sie können angeben, welche aus der Datenquelle zum Binden an Felder die ListItem.Text und ListItem.Value Eigenschaften jedes Elements im Steuerelement durch Festlegen der DataTextField und DataValueField Eigenschaften, bzw.

Alternativ können Sie die DataSourceID Eigenschaft verwenden, um automatisch an eine Datenquelle zu binden, die durch ein Datenquellensteuerelement dargestellt wird. Wenn Sie die DataSourceID Eigenschaft festlegen, bindet das Datenauflistungssteuerelement automatisch an das angegebene Datenquellensteuerelement. Sie müssen keinen Code schreiben, der die DataBind Methode explizit aufruft.

Wenn Werte sowohl für die DataSource Eigenschaft als auch für die DataSourceID Eigenschaft angegeben werden, kann ASP.NET die Datenquelle nicht auflösen und eine System.Web.HttpException Ausnahme ausgelöst wird.

Gilt für

Siehe auch