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


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

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

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