HtmlSelect.DataSource Eigenschap

Definitie

Hiermee wordt de bron van informatie opgehaald of ingesteld om verbinding te maken met het HtmlSelect besturingselement.

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

Waarde van eigenschap

Een IEnumerable of IListSource die een verzameling waarden bevat die worden gebruikt voor het leveren van gegevens aan dit besturingselement. De standaardwaarde is null.

Uitzonderingen

De opgegeven gegevensbron is niet compatibel met of IEnumerableIListSource, en niet null.

De gegevensbron kan niet worden omgezet omdat er een waarde is opgegeven voor zowel de DataSource eigenschap als de DataSourceID eigenschap.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de DataSource eigenschap gebruikt om de bron van informatie op te geven die aan het HtmlSelect besturingselement moet worden gekoppeld.

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

Opmerkingen

Gebruik de DataSource eigenschap om de gegevensbron op te geven om verbinding te maken met het HtmlSelect besturingselement. Een gegevensbron moet een verzameling zijn die de System.Collections.IEnumerable interface (zoals System.Data.DataView, System.Collections.ArrayListof ) of System.Collections.Generic.List<T>de IListSource interface implementeert. Wanneer u de DataSource eigenschap instelt, moet u de code handmatig schrijven om gegevensbinding uit te voeren.

Als de gegevensbron meerdere gegevenssets bevat, zoals een System.Data.DataSet object met meerdere tabellen, gebruikt u de DataMember eigenschap om op te geven welke gegevensset moet worden gekoppeld aan het besturingselement.

U kunt opgeven welke velden uit de gegevensbron moeten worden gekoppeld aan de ListItem.Text en ListItem.Value eigenschappen van elk item in het besturingselement door respectievelijk de DataTextField en DataValueField eigenschappen in te stellen.

U kunt de DataSourceID eigenschap ook gebruiken om automatisch verbinding te maken met een gegevensbron die wordt vertegenwoordigd door een gegevensbronbesturingselement. Wanneer u de DataSourceID eigenschap instelt, wordt het besturingselement voor het weergeven van gegevens automatisch gekoppeld aan het opgegeven besturingselement voor gegevensbronnen. U hoeft geen code te schrijven waarmee de DataBind methode expliciet wordt aangeroepen.

Als waarden worden opgegeven voor zowel de eigenschap DataSource als de eigenschap DataSourceID, kan ASP.NET de gegevensbron niet oplossen en wordt er een System.Web.HttpException-uitzondering gegenereerd.

Van toepassing op

Zie ook