Partage via


HtmlSelect.DataSource Propriété

Définition

Obtient ou définit la source d'informations à associer au contrôle HtmlSelect.

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

Valeur de propriété

Object

IEnumerable ou IListSourcequi contient une collection de valeurs utilisées pour fournir des données à ce contrôle. La valeur par défaut est null.

Exceptions

La source de données spécifiée n'est pas compatible avec IEnumerable ou avec IListSource, et elle n'est pas null.

La source de données ne peut pas être déterminée, car une valeur est spécifiée à la fois pour la propriété DataSource et pour la propriété DataSourceID.

Exemples

L’exemple de code suivant montre comment utiliser la DataSource propriété pour spécifier la source d’informations à lier au HtmlSelect contrôle.

<%@ 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>

Remarques

Utilisez la DataSource propriété pour spécifier la source de données à lier au HtmlSelect contrôle. Une source de données doit être une collection qui implémente l’interface System.Collections.IEnumerable (par exemple System.Data.DataView, ou System.Collections.ArrayList) ou System.Collections.Generic.List<T>l’interface IListSource . Lorsque vous définissez la DataSource propriété, vous devez écrire manuellement le code pour effectuer une liaison de données.

Si la source de données contient plusieurs ensembles de données, tels qu’un System.Data.DataSet objet avec plusieurs tables, utilisez la DataMember propriété pour spécifier le jeu de données à lier au contrôle.

Vous pouvez spécifier les champs de la source de données à lier aux propriétés et ListItem.Value aux ListItem.Text propriétés de chaque élément du contrôle en définissant respectivement les propriétés et DataValueField les DataTextField propriétés.

Vous pouvez également utiliser la DataSourceID propriété pour lier automatiquement une source de données représentée par un contrôle de source de données. Lorsque vous définissez la DataSourceID propriété, le contrôle de liste de données se lie automatiquement au contrôle de source de données spécifié. Vous n’avez pas besoin d’écrire du code qui appelle explicitement la DataBind méthode.

Si les valeurs sont spécifiées pour la propriété et la DataSource DataSourceID propriété, ASP.NET n’est pas en mesure de résoudre la source de données et une System.Web.HttpException exception est levée.

S’applique à

Voir aussi