Partager via


BaseDataList.DataSource Propriété

Définition

Obtient ou définit la source contenant une liste de valeurs utilisée pour remplir les éléments dans le contrôle.

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

Valeur de propriété

IEnumerable ou IListSourcequi contient une collection de valeurs utilisées pour fournir des données à ce contrôle. La valeur par défaut est null.

Attributs

Exceptions

La source de données ne peut pas être déterminée, car une valeur est spécifiée à la fois pour la propriété DataSource et pour la propriété DataSourceID.

Le type de la source de données n'est pas valide. La source de données doit être null, ou elle doit implémenter l'interface IEnumerable ou IListSource.

Exemples

L’exemple de code suivant montre comment utiliser la DataSource propriété pour spécifier la source de données à lier à un DataGrid contrôle.

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

Remarques

Utilisez la DataSource propriété pour spécifier la source des valeurs à lier à un contrôle de liste de données. Une source de données doit être une collection qui implémente l’interface System.Collections.IEnumerable (telle que System.Data.DataView, System.Collections.ArrayListou System.Collections.Generic.List<T>) ou l’interface IListSource à lier à un contrôle dérivé de la BaseDataList classe . Lorsque vous définissez la DataSource propriété, vous devez écrire manuellement le code pour effectuer la liaison de données.

Si la source de données spécifiée par la DataSource propriété contient plusieurs sources de données, utilisez la DataMember propriété pour spécifier la source spécifique à lier au contrôle. Par exemple, si vous avez un System.Data.DataSet objet avec plusieurs tables, vous devez spécifier la table à lier au contrôle. Une fois que vous avez spécifié la source de données, utilisez la DataBind méthode pour lier la source de données au contrôle.

Vous pouvez également utiliser la DataSourceID propriété pour lier automatiquement à une source de données représentée par un contrôle de source de données. Lorsque vous définissez la DataSourceID propriété, le contrôle de liste de données est automatiquement lié au contrôle de source de données spécifié. Vous n’avez pas besoin d’écrire du code qui appelle explicitement la DataBind méthode .

Si des valeurs sont spécifiées pour la DataSource propriété et la DataSourceID propriété, ASP.NET n’est pas en mesure de résoudre la source de données et une System.Web.HttpException exception est levée.

Cette propriété ne peut pas être définie par les thèmes ou les thèmes de feuille de style. Pour plus d’informations, consultez ThemeableAttribute et ASP.NET Thèmes et apparences.

S’applique à

Voir aussi