BaseDataList.DataSource Proprietà

Definizione

Ottiene o imposta l’origine contenente un elenco di valori utilizzato per inserire gli elementi all’interno del controllo.

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à

Oggetto IEnumerable o IListSource che contiene un insieme di valori utilizzati per fornire dati a questo controllo. Il valore predefinito è 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.

L'origine dati è di un tipo non valido. L'origine dati deve essere null o deve implementare l'interfaccia IEnumerable o IListSource.

Esempio

Nell'esempio di codice seguente viene illustrato come usare la proprietà per specificare l'origine DataSource dati da associare a un DataGrid controllo.

<%@ 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 proprietà per specificare l'origine DataSource dei valori da associare a un controllo elenco dati. Un'origine dati deve essere una raccolta che implementa l'interfaccia (ad esempio , o ) System.Collections.Generic.List<T>o l'interfaccia IListSourceSystem.Collections.IEnumerable da associare a un controllo derivato dalla BaseDataListSystem.Collections.ArrayListSystem.Data.DataViewclasse. Quando si imposta la proprietà, è necessario scrivere manualmente il DataSource codice per eseguire il 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. Ad esempio, se si dispone di un System.Data.DataSet oggetto con più tabelle, è necessario specificare quale tabella associare al controllo. Dopo aver specificato l'origine dati, usare il DataBind metodo per associare l'origine dati al controllo.

In alternativa, è possibile usare la proprietà per associare automaticamente a un'origine DataSourceID dati rappresentata da un controllo origine dati. Quando si imposta la DataSourceID proprietà, il controllo elenco dati associa automaticamente al controllo origine dati specificato. Non è necessario scrivere codice che chiama in modo esplicito il DataBind metodo.

Se i valori vengono specificati sia per la proprietà che per la DataSource proprietà, ASP.NET non è in grado di risolvere l'origine DataSourceID dati e viene generata un'eccezione System.Web.HttpException .

Questa proprietà non può essere impostata da temi oppure temi di fogli di stile. Per altre informazioni, vedere ThemeableAttribute e ASP.NET Temi e skin.

Si applica a

Vedi anche