다음을 통해 공유


HtmlSelect.DataSource 속성

정의

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

속성 값

이 컨트롤에 데이터를 제공하는 데 사용된 값 컬렉션을 포함하는 IEnumerable 또는 IListSource입니다. 기본값은 null입니다.

예외

지정된 데이터 소스가 IEnumerable 또는 IListSource 중 하나와 호환되지 않고, null이 아닌 경우

DataSource 속성과 DataSourceID 속성 모두에 대해 값이 지정되었기 때문에 데이터 소스를 확인할 수 없는 경우

예제

다음 코드 예제를 사용 DataSource 하는 방법에 설명 합니다 속성에 바인딩할 정보의 소스를 지정 하는 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>

설명

사용 하 여는 DataSource 속성을 컨트롤에 바인딩할 데이터 원본을 HtmlSelect 지정 합니다. 데이터 원본은 인터페이스(예: System.Data.DataView, System.Collections.ArrayList또는 ) 또는 System.Collections.Generic.List<T>인터페이스를 구현 System.Collections.IEnumerable 하는 IListSource 컬렉션이어야 합니다. 속성을 설정할 때 데이터 바인딩을 DataSource 수행하려면 코드를 수동으로 작성해야 합니다.

데이터 원본에 여러 테이블이 있는 개체와 같은 System.Data.DataSet 여러 데이터 집합이 포함된 경우 속성을 사용하여 DataMember 컨트롤에 바인딩할 데이터 집합을 지정합니다.

DataValueField 속성을 각각 설정하여 컨트롤에서 각 항목의 및 ListItem.Value 속성에 바인딩할 ListItem.Text 데이터 원본의 DataTextField 필드를 지정할 수 있습니다.

또는 속성을 사용하여 DataSourceID 데이터 원본 컨트롤이 나타내는 데이터 원본에 자동으로 바인딩할 수 있습니다. 속성을 설정 DataSourceID 하면 데이터 목록 컨트롤이 지정된 데이터 원본 컨트롤에 자동으로 바인딩됩니다. 메서드를 명시적으로 호출 DataBind 하는 코드를 작성할 필요가 없습니다.

속성과 DataSourceID 속성 모두에 DataSource 값을 지정하면 ASP.NET 데이터 원본을 확인할 수 없으며 예외가 System.Web.HttpException throw됩니다.

적용 대상

추가 정보