Compartilhar via


BaseDataList.DataSource Propriedade

Definição

Obtém ou define a fonte que contém uma lista de valores usados para popular os itens dentro do controle.

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

Valor da propriedade

Um IEnumerable ou IListSource que contém uma coleção de valores usada para fornecer dados a este controle. O valor padrão é null.

Atributos

Exceções

A fonte de dados não pode ser resolvida porque foi especificado um valor para as propriedades DataSource e DataSourceID.

A fonte de dados é de um tipo inválido. A fonte de dados deve ser null ou implementar uma dentre as interfaces IEnumerable ou IListSource.

Exemplos

O exemplo de código a seguir demonstra como usar a DataSource propriedade para especificar a fonte de dados a ser associada a um DataGrid controle.

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

Comentários

Use a DataSource propriedade para especificar a origem dos valores a serem associados a um controle de listagem de dados. Uma fonte de dados deve ser uma coleção que implemente a System.Collections.IEnumerable interface (como System.Data.DataView, System.Collections.ArrayListou System.Collections.Generic.List<T>) ou a IListSource interface a ser associada a um controle derivado da BaseDataList classe . Ao definir a DataSource propriedade, você deve escrever manualmente o código para executar a associação de dados.

Se a fonte de dados especificada pela DataSource propriedade contiver várias fontes de dados, use a DataMember propriedade para especificar a fonte específica a ser associada ao controle. Por exemplo, se você tiver um System.Data.DataSet objeto com várias tabelas, deverá especificar qual tabela associar ao controle. Depois de especificar a fonte de dados, use o DataBind método para associar a fonte de dados ao controle .

Como alternativa, você pode usar a DataSourceID propriedade para associar automaticamente a uma fonte de dados representada por um controle de fonte de dados. Quando você define a DataSourceID propriedade, o controle de listagem de dados é associado automaticamente ao controle de fonte de dados especificado. Você não precisa escrever um código que chame explicitamente o DataBind método .

Se os valores forem especificados para a DataSource propriedade e para a DataSourceID propriedade , ASP.NET não poderá resolver a fonte de dados e uma exceção System.Web.HttpException será gerada.

Essa propriedade não pode ser definida por temas ou temas de folha de estilos. Para obter mais informações, consulte ThemeableAttribute e ASP.NET Temas e Peles.

Aplica-se a

Confira também