다음을 통해 공유


BaseDataList.DataSource 속성

정의

컨트롤 내에 항목을 채우는 데 사용된 값 목록이 포함된 소스를 가져오거나 설정합니다.

public:
 virtual property System::Object ^ DataSource { System::Object ^ get(); void set(System::Object ^ value); };
[System.ComponentModel.Bindable(true)]
public virtual object DataSource { get; set; }
[System.ComponentModel.Bindable(true)]
[System.Web.UI.Themeable(false)]
public virtual object DataSource { get; set; }
[<System.ComponentModel.Bindable(true)>]
member this.DataSource : obj with get, set
[<System.ComponentModel.Bindable(true)>]
[<System.Web.UI.Themeable(false)>]
member this.DataSource : obj with get, set
Public Overridable Property DataSource As Object

속성 값

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

특성

예외

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

데이터 소스의 형식이 잘못된 경우. 데이터 소스는 null이거나 IEnumerable 또는 IListSource 인터페이스를 구현해야 합니다.

예제

다음 코드 예제를 사용 DataSource 하는 방법에 설명 합니다 속성에 바인딩할 데이터 원본을 지정 하는 컨트롤입니다 DataGrid .

<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
 
<!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" >
   <script language="C#" runat="server">
 
      ICollection CreateDataSource() 
      {
         DataTable dt = new DataTable();
         DataRow dr;
 
         dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
         dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
         dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
 
         for (int i = 0; i < 9; i++) 
         {
            dr = dt.NewRow();
 
            dr[0] = i;
            dr[1] = "Item " + i.ToString();
            dr[2] = 1.23 * (i + 1);
 
            dt.Rows.Add(dr);
         }
 
         DataView dv = new DataView(dt);
         return dv;
      }
 
      void Page_Load(Object sender, EventArgs e) 
      {
 
         if (!IsPostBack) 
         {
            // Load this data only once.
            ItemsGrid.DataSource= CreateDataSource();
            ItemsGrid.DataBind();
         }
      }
 
   </script>
 
<head runat="server">
    <title>DataGrid Example</title>
</head>
<body>
 
   <form id="form1" runat="server">
 
      <h3>DataGrid Example</h3>
 
      <b>Product List</b>
 
      <asp:DataGrid id="ItemsGrid"
           BorderColor="black"
           BorderWidth="1"
           CellPadding="3"
           AutoGenerateColumns="true"
           runat="server">

         <HeaderStyle BackColor="#00aaaa">
         </HeaderStyle> 
 
      </asp:DataGrid>
 
   </form>
 
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
 
<!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" >
   <script language="VB" runat="server">
     Function CreateDataSource() As ICollection
        Dim dt As New DataTable()
        Dim dr As DataRow
        
        dt.Columns.Add(New DataColumn("IntegerValue", GetType(Int32)))
        dt.Columns.Add(New DataColumn("StringValue", GetType(String)))
        dt.Columns.Add(New DataColumn("CurrencyValue", GetType(Double)))
        
        Dim i As Integer
        For i = 0 To 8
            dr = dt.NewRow()
            
            dr(0) = i
            dr(1) = "Item " + i.ToString()
            dr(2) = 1.23 *(i + 1)
            
            dt.Rows.Add(dr)
        Next i
        
        Dim dv As New DataView(dt)
        Return dv
    End Function 'CreateDataSource


    Sub Page_Load(sender As Object, e As EventArgs)
        
        If Not IsPostBack Then
            ' Load this data only once.
            ItemsGrid.DataSource = CreateDataSource()
            ItemsGrid.DataBind()
        End If
    End Sub 'Page_Load
 
  </script>
 
<head runat="server">
    <title>DataGrid Example</title>
</head>
<body>
 
   <form id="form1" runat="server">
 
      <h3>DataGrid Example</h3>
 
      <b>Product List</b>
 
      <asp:DataGrid id="ItemsGrid"
           BorderColor="black"
           BorderWidth="1"
           CellPadding="3"
           AutoGenerateColumns="true"
           runat="server">

         <HeaderStyle BackColor="#00aaaa">
         </HeaderStyle> 
 
      </asp:DataGrid>
 
   </form>
 
</body>
</html>

설명

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

속성에 지정된 DataSource 데이터 원본에 여러 데이터 원본이 포함된 경우 속성을 사용하여 DataMember 컨트롤에 바인딩할 특정 원본을 지정합니다. 예를 들어 여러 테이블이 있는 개체가 System.Data.DataSet 있는 경우 컨트롤에 바인딩할 테이블을 지정해야 합니다. 데이터 원본을 지정한 후 메서드를 DataBind 사용하여 데이터 원본을 컨트롤에 바인딩합니다.

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

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

이 속성은 테마 또는 스타일시트 테마에 의해 설정될 수 없습니다. 자세한 내용은 ThemeableAttribute 하 고 ASP.NET 테마 및 스킨합니다.

적용 대상

추가 정보