BaseDataList.DataSource Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.