Sdílet prostřednictvím


BaseDataList.DataSource Vlastnost

Definice

Získá nebo nastaví zdroj obsahující seznam hodnot použitých k naplnění položek v rámci ovládacího prvku.

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

Hodnota vlastnosti

IListSource Nebo IEnumerable obsahující kolekci hodnot, které se používají k poskytování dat tomuto ovládacímu prvku. Výchozí hodnota je null.

Atributy

Výjimky

Zdroj dat nelze přeložit, protože je zadána hodnota pro vlastnost i DataSourceDataSourceID vlastnost.

Zdroj dat je neplatného typu. Zdroj dat musí být null nebo implementovat rozhraní IEnumerable nebo IListSource .

Příklady

Následující příklad kódu ukazuje, jak použít DataSource vlastnost k určení zdroje dat, který se má svázat s ovládacím prvku 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>

Poznámky

DataSource Pomocí vlastnosti určete zdroj hodnot, které se mají svázat s ovládacím prvku výpisu dat. Zdroj dat musí být kolekce, která implementuje rozhraní System.Collections.IEnumerable (například System.Data.DataView, System.Collections.ArrayListnebo System.Collections.Generic.List<T>) nebo IListSource rozhraní pro vazbu na ovládací prvek odvozený z BaseDataList třídy. Při nastavování DataSource vlastnosti je nutné ručně napsat kód pro provedení datové vazby.

Pokud zdroj dat určený DataSource vlastností obsahuje více zdrojů dat, použijte DataMember vlastnost k určení konkrétního zdroje, který se má svázat s ovládacím prvku. Pokud máte System.Data.DataSet například objekt s více tabulkami, musíte určit, která tabulka se má svázat s ovládacím prvku. Po zadání zdroje dat použijte metodu DataBind k vytvoření vazby zdroje dat k ovládacímu prvku.

Případně můžete vlastnost použít DataSourceID k automatické vazbě na zdroj dat reprezentovaný ovládacím prvek zdroje dat. Při nastavení DataSourceID vlastnosti se ovládací prvek výpisu dat automaticky vytvoří vazbu na zadaný ovládací prvek zdroje dat. Nemusíte psát kód, který explicitně volá metodu DataBind .

Pokud jsou zadány hodnoty pro vlastnost i DataSourceDataSourceID vlastnost, ASP.NET nemůže přeložit zdroj dat a System.Web.HttpException vyvolá se výjimka.

Tuto vlastnost nelze nastavit pomocí motivů nebo šablon stylů. Další informace najdete v tématu ThemeableAttribute a ASP.NET motivy a vzhledy.

Platí pro

Viz také