Freigeben über


BaseDataList.DataSource Eigenschaft

Definition

Ruft die Quelle mit einer Werteliste ab, die zum Auffüllen der Elemente im Steuerelement verwendet wird, oder legt diese fest.

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

Eigenschaftswert

Ein IEnumerable oder ein IListSource, das eine Werteauflistung zum Bereitstellen von Daten für dieses Steuerelement enthält. Der Standardwert ist null.

Attribute

Ausnahmen

Die Datenquelle kann nicht aufgelöst werden, weil sowohl für die DataSource-Eigenschaft als auch für die DataSourceID-Eigenschaft ein Wert angegeben wurde.

Die Datenquelle hat einen ungültigen Typ. Die Datenquelle muss null sein oder entweder die IEnumerable-Schnittstelle oder die IListSource-Schnittstelle implementieren.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die DataSource -Eigenschaft verwendet wird, um die Datenquelle anzugeben, die an ein DataGrid Steuerelement gebunden werden soll.

<%@ 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>

Hinweise

Verwenden Sie die DataSource -Eigenschaft, um die Quelle der Werte anzugeben, die an ein Datenauflistungssteuerelement gebunden werden sollen. Eine Datenquelle muss eine Auflistung sein, die entweder die System.Collections.IEnumerable -Schnittstelle (z System.Data.DataView. B. , System.Collections.ArrayListoder System.Collections.Generic.List<T>) oder die Schnittstelle implementiert, die IListSource an ein von der BaseDataList -Klasse abgeleitetes Steuerelement gebunden werden soll. Wenn Sie die DataSource -Eigenschaft festlegen, müssen Sie den Code manuell schreiben, um die Datenbindung auszuführen.

Wenn die von der DataSource -Eigenschaft angegebene Datenquelle mehrere Datenquellen enthält, verwenden Sie die DataMember -Eigenschaft, um die spezifische Quelle anzugeben, die an das Steuerelement gebunden werden soll. Wenn Sie beispielsweise über ein System.Data.DataSet Objekt mit mehreren Tabellen verfügen, müssen Sie angeben, welche Tabelle an das Steuerelement gebunden werden soll. Nachdem Sie die Datenquelle angegeben haben, verwenden Sie die DataBind -Methode, um die Datenquelle an das Steuerelement zu binden.

Alternativ können Sie die DataSourceID -Eigenschaft verwenden, um automatisch an eine Datenquelle zu binden, die durch ein Datenquellensteuerelement dargestellt wird. Wenn Sie die DataSourceID -Eigenschaft festlegen, wird das Datenauflistungssteuerelement automatisch an das angegebene Datenquellensteuerelement gebunden. Sie müssen keinen Code schreiben, der die DataBind -Methode explizit aufruft.

Wenn Werte sowohl für die DataSource -Eigenschaft als auch für die DataSourceID -Eigenschaft angegeben werden, kann ASP.NET die Datenquelle nicht auflösen, und es wird eine System.Web.HttpException Ausnahme ausgelöst.

Diese Eigenschaft kann nicht durch Designs oder Stylesheetdesigns festgelegt werden. Weitere Informationen finden Sie unter ThemeableAttribute und ASP.NET-Designs und Skins.

Gilt für:

Weitere Informationen