BaseDataList.DataSource Свойство

Определение

Получает или задает источник, содержащий список значений, используемых для заполнения элементов в элементе управления.Gets or sets the source containing a list of values used to populate the items within the control.

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

Значение свойства

Интерфейс IEnumerable или IListSource, содержащий коллекцию значений, используемую для передачи данных в этот элемент управления.An IEnumerable or IListSource that contains a collection of values used to supply data to this control. Значение по умолчанию — null.The default value is null.

Атрибуты

Исключения

Не удается разрешить источник данных, поскольку значение указанно и для свойства DataSource, и для свойства DataSourceID.The data source cannot be resolved because a value is specified for both the DataSource property and the DataSourceID property.

Источник данных имеет недопустимый тип.The data source is of an invalid type. Источник данных должен иметь значение null или реализовывать интерфейс IEnumerable или IListSource.The data source must be null or implement either the IEnumerable or the IListSource interface.

Примеры

В следующем примере кода показано, как использовать DataSource свойство, чтобы указать источник данных для привязки DataGrid к элементу управления.The following code example demonstrates how to use the DataSource property to specify the data source to bind to a DataGrid control.

<%@ 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 Используйте свойство, чтобы указать источник значений для привязки к элементу управления списка данных.Use the DataSource property to specify the source of values to bind to a data listing control. Источник данных System.Collections.IEnumerable должен быть коллекцией, реализующей интерфейс ( System.Data.DataViewнапример, System.Collections.ArrayList, или System.Collections.Generic.List<T>) BaseDataList или IListSource интерфейсом для привязки к элементу управления, производному от класса.A data source must be a collection that implements either the System.Collections.IEnumerable interface (such as System.Data.DataView, System.Collections.ArrayList, or System.Collections.Generic.List<T>) or the IListSource interface to bind to a control derived from the BaseDataList class. При задании DataSource свойства необходимо вручную написать код для выполнения привязки данных.When you set the DataSource property, you must manually write the code to perform data binding.

Если источник данных, заданный DataSource свойством, содержит несколько источников данных, DataMember используйте свойство, чтобы указать конкретный источник для привязки к элементу управления.If the data source specified by the DataSource property contains multiple sources of data, use the DataMember property to specify the specific source to bind to the control. Например, если System.Data.DataSet имеется объект с несколькими таблицами, необходимо указать, какая таблица должна быть привязана к элементу управления.For example, if you have a System.Data.DataSet object with multiple tables, you must specify which table to bind to the control. После указания источника данных используйте DataBind метод, чтобы привязать источник данных к элементу управления.After you have specified the data source, use the DataBind method to bind the data source to the control.

Кроме того, DataSourceID свойство можно использовать для автоматической привязки к источнику данных, представленному элементом управления источниками данных.Alternately, you can use the DataSourceID property to automatically bind to a data source represented by a data source control. При задании DataSourceID свойства элемент управления "список данных" автоматически привязывается к указанному элементу управления источником данных.When you set the DataSourceID property, the data listing control automatically binds to the specified data source control. Написание кода, явно вызывающего DataBind метод, не требуется.You do not need to write code that explicitly calls the DataBind method.

Если указаны значения для DataSource свойства DataSourceID и свойства, ASP.NET не может разрешить источник данных, и System.Web.HttpException создается исключение.If values are specified for both the DataSource property and the DataSourceID property, ASP.NET is not able to resolve the data source and an System.Web.HttpException exception is thrown.

Значение для данного свойства нельзя задать с помощью тем или тем таблиц стилей.This property cannot be set by themes or style sheet themes. Дополнительные сведения см ThemeableAttribute . в статьях и ASP.NET Themes и обложки.For more information, see ThemeableAttribute and ASP.NET Themes and Skins.

Применяется к

Дополнительно