Udostępnij za pośrednictwem


HtmlSelect.DataSource Właściwość

Definicja

Pobiera lub ustawia źródło informacji w celu powiązania z kontrolką 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

Wartość właściwości

Object

Element IEnumerable lub IListSource zawierający kolekcję wartości używanych do dostarczania danych do tej kontrolki. Wartość domyślna to null.

Wyjątki

Określone źródło danych nie jest zgodne z elementem IEnumerable lub IListSource, a nie null.

Nie można rozpoznać źródła danych, ponieważ wartość jest określona zarówno DataSource dla właściwości, jak i DataSourceID właściwości.

Przykłady

W poniższym przykładzie kodu pokazano, jak za pomocą DataSource właściwości określić źródło informacji, które mają być powiązane z kontrolką HtmlSelect .

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

Uwagi

Użyj właściwości , DataSource aby określić źródło danych do powiązania z kontrolką HtmlSelect . Źródło danych musi być kolekcją, która implementuje System.Collections.IEnumerable interfejs (taki jak System.Data.DataView, System.Collections.ArrayListlub System.Collections.Generic.List<T>) lub IListSource interfejs. Po ustawieniu DataSource właściwości należy ręcznie napisać kod, aby wykonać powiązanie danych.

Jeśli źródło danych zawiera wiele zestawów danych, takich jak System.Data.DataSet obiekt z wieloma tabelami, użyj DataMember właściwości , aby określić zestaw danych, który ma zostać powiązany z kontrolką.

Możesz określić, które pola ze źródła danych mają być powiązane ListItem.Text z właściwościami i ListItem.Value każdego elementu w kontrolce, ustawiając DataTextField odpowiednio właściwości i DataValueField .

Alternatywnie można użyć DataSourceID właściwości , aby automatycznie powiązać ze źródłem danych reprezentowanym przez kontrolę źródła danych. Po ustawieniu właściwości kontrolka DataSourceID listy danych automatycznie wiąże się z określoną kontrolą źródła danych. Nie musisz pisać kodu, który jawnie wywołuje metodę DataBind .

Jeśli wartości są określone zarówno DataSource dla właściwości, jak i DataSourceID właściwości, ASP.NET nie może rozpoznać źródła danych i System.Web.HttpException zgłaszany jest wyjątek.

Dotyczy

Zobacz też