Поделиться через


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 либо реализован, либо интерфейс IEnumerableIListSource .

Примеры

В следующем примере кода показано, как использовать 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 Используйте свойство, чтобы указать источник значений для привязки к элементу управления перечислением данных. Источник данных должен быть коллекцией, реализующей System.Collections.IEnumerable интерфейс (напримерSystem.Collections.ArrayListSystem.Data.DataView, илиSystem.Collections.Generic.List<T>) или IListSource интерфейс для привязки к элементу управления, производным от BaseDataList класса. При установке DataSource свойства необходимо вручную написать код для выполнения привязки данных.

Если источник данных, указанный DataSource свойством, содержит несколько источников данных, используйте DataMember свойство, чтобы указать конкретный источник для привязки к элементу управления. Например, если у вас есть System.Data.DataSet объект с несколькими таблицами, необходимо указать, какая таблица должна быть привязана к элементу управления. После указания источника данных используйте DataBind метод для привязки источника данных к элементу управления.

Кроме того, свойство можно использовать DataSourceID для автоматической привязки к источнику данных, представленному элементом управления источниками данных. При установке DataSourceID свойства элемент управления перечислением данных автоматически привязывается к указанному элементу управления версиями данных. Вам не нужно писать код, который явно вызывает DataBind метод.

Если значения указаны как для свойства, так DataSource и DataSourceID для свойства, ASP.NET не может разрешить источник данных, и System.Web.HttpException создается исключение.

Это свойство не может быть задано темами или темами таблицы стилей. Дополнительные сведения см. в статье ThemeableAttributeи ASP.NET темы и скины.

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

См. также раздел