BaseDataList.DataSource Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém ou define a fonte contendo uma lista de valores usados para preencher os itens dentro do controlo.
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 de Propriedade
Um IEnumerable ou IListSource que contém uma coleção de valores usados para fornecer dados a este controlo. O valor predefinido é null.
- Atributos
Exceções
A fonte de dados não pode ser resolvida porque um valor é especificado tanto para a DataSource propriedade como para a propriedade DataSourceID .
A fonte de dados é de tipo inválido. A fonte de dados deve ser null ou implementar ou IEnumerableIListSource a interface.
Exemplos
O exemplo de código seguinte demonstra como usar a DataSource propriedade para especificar a fonte de dados a vincular a um DataGrid controlo.
<%@ 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>
Observações
Use a DataSource propriedade para especificar a fonte dos valores a atribuir a um controlo de listagem de dados. Uma fonte de dados deve ser uma coleção que implementa ou a System.Collections.IEnumerable interface (como System.Data.DataView, System.Collections.ArrayList, ou System.Collections.Generic.List<T>) ou a IListSource interface para se ligar a um controlo derivado da BaseDataList classe. Quando defines a DataSource propriedade, tens de escrever manualmente o código para realizar a ligação de dados.
Se a fonte de dados especificada pela DataSource propriedade contiver múltiplas fontes de dados, use a DataMember propriedade para especificar a fonte específica a atribuir ao controlo. Por exemplo, se tiver um System.Data.DataSet objeto com várias tabelas, deve especificar qual tabela atribuir ao controlo. Depois de especificar a fonte de dados, use o DataBind método para ligar a fonte de dados ao controlo.
Alternativamente, pode usar a DataSourceID propriedade para ligar automaticamente a uma fonte de dados representada por um controlo de fonte de dados. Quando defines a DataSourceID propriedade, o controlo de listagem de dados liga-se automaticamente ao controlo de fonte de dados especificado. Não precisas de escrever código que chame explicitamente o DataBind método.
Se forem especificados valores tanto para a propriedade DataSource como para a propriedade DataSourceID, ASP.NET não conseguir resolver a fonte de dados e é lançada uma exceção System.Web.HttpException.
Esta propriedade não pode ser definida por temas ou temas de folhas de estilo. Para mais informações, consulte ThemeableAttribute e ASP.NET Temas e Skins.