BaseDataList.DataSource Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta l'origine contenente un elenco di valori utilizzati per popolare 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 contenente una raccolta di valori utilizzata per fornire dati a questo controllo. Il valore predefinito è null.
- Attributi
Eccezioni
Impossibile risolvere l'origine dati perché viene specificato un valore sia per la DataSource proprietà che per la DataSourceID proprietà .
L'origine dati è di un tipo non valido. L'origine dati deve essere null o implementare l'interfaccia IEnumerableIListSource o .
Esempio
Nell'esempio di codice seguente viene illustrato come utilizzare la DataSource proprietà per specificare l'origine 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 DataSource proprietà per specificare l'origine dei valori da associare a un controllo elenco dati. Un'origine dati deve essere una raccolta che implementa l'interfaccia System.Collections.IEnumerable ( ad esempio System.Data.DataView, System.Collections.ArrayListo System.Collections.Generic.List<T>) o l'interfaccia IListSource da associare a un controllo derivato dalla BaseDataList classe . Quando si imposta la DataSource proprietà , è necessario scrivere manualmente il 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 la tabella da associare al controllo. Dopo aver specificato l'origine dati, usare il DataBind metodo per associare l'origine dati al controllo.
In alternativa, è possibile utilizzare la proprietà per eseguire automaticamente l'associazione DataSourceID a un'origine dati rappresentata da un controllo origine dati. Quando si imposta la DataSourceID proprietà , il controllo elenco dati viene associato automaticamente al controllo origine dati specificato. Non è necessario scrivere codice che chiama in modo esplicito il DataBind metodo .
Se vengono specificati valori sia per la DataSource proprietà che per la DataSourceID proprietà , ASP.NET non è in grado di risolvere l'origine dati e viene generata un'eccezione System.Web.HttpException .
Questa proprietà non può essere impostata in base a temi o temi del foglio di stile. Per altre informazioni, vedere ThemeableAttribute e ASP.NET Temi e interfacce.