BaseDataList.DataSource Proprietà

Definizione

Ottiene o imposta l’origine contenente un elenco di valori utilizzato per inserire gli elementi all’interno del controllo.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)]
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

Valore della proprietà

Object

Oggetto IEnumerable o IListSource che contiene un insieme di valori utilizzati per fornire dati a questo controllo.An IEnumerable or IListSource that contains a collection of values used to supply data to this control. Il valore predefinito è null.The default value is null.

Attributi

Eccezioni

L'origine dati non può essere risolta perché è stato specificato un valore sia per la proprietà DataSource che per la proprietà DataSourceID.The data source cannot be resolved because a value is specified for both the DataSource property and the DataSourceID property.

L'origine dati è di un tipo non valido.The data source is of an invalid type. L'origine dati deve essere null o deve implementare l'interfaccia IEnumerable o IListSource.The data source must be null or implement either the IEnumerable or the IListSource interface.

Esempio

Nell'esempio di codice riportato di seguito viene illustrato come utilizzare la DataSource proprietà per specificare l'origine dati da associare a un DataGrid controllo.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>

Commenti

Utilizzare la DataSource proprietà per specificare l'origine dei valori da associare a un controllo elenco dati.Use the DataSource property to specify the source of values to bind to a data listing control. Un'origine dati deve essere una raccolta che implementa l' System.Collections.IEnumerable interfaccia (ad esempio System.Data.DataView , System.Collections.ArrayList o System.Collections.Generic.List<T> ) o l' IListSource interfaccia per eseguire l'associazione a un controllo derivato dalla BaseDataList classe.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. Quando si imposta la DataSource proprietà, è necessario scrivere manualmente il codice per eseguire Data Binding.When you set the DataSource property, you must manually write the code to perform data binding.

Se l'origine dati specificata dalla DataSource proprietà contiene più origini di dati, utilizzare la DataMember proprietà per specificare l'origine specifica da associare al controllo.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. Se, ad esempio, si dispone di un System.Data.DataSet oggetto con più tabelle, è necessario specificare la tabella da associare al controllo.For example, if you have a System.Data.DataSet object with multiple tables, you must specify which table to bind to the control. Dopo aver specificato l'origine dati, utilizzare il DataBind metodo per associare l'origine dati al controllo.After you have specified the data source, use the DataBind method to bind the data source to the control.

In alternativa, è possibile utilizzare la DataSourceID proprietà per eseguire automaticamente l'associazione a un'origine dati rappresentata da un controllo origine dati.Alternately, you can use the DataSourceID property to automatically bind to a data source represented by a data source control. Quando si imposta la DataSourceID proprietà, il controllo elenco dati viene automaticamente associato al controllo origine dati specificato.When you set the DataSourceID property, the data listing control automatically binds to the specified data source control. Non è necessario scrivere codice che chiama in modo esplicito il DataBind metodo.You do not need to write code that explicitly calls the DataBind method.

Se vengono specificati valori per la DataSource proprietà e la DataSourceID proprietà, ASP.NET non è in grado di risolvere l'origine dati e System.Web.HttpException viene generata un'eccezione.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.

Questa proprietà non può essere impostata da temi oppure temi di fogli di stile.This property cannot be set by themes or style sheet themes. Per ulteriori informazioni, vedere ThemeableAttribute e ASP.NET temi e interfacce.For more information, see ThemeableAttribute and ASP.NET Themes and Skins.

Si applica a

Vedi anche