BaseDataList.DataSource Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает или задает источник, содержащий список значений, используемых для заполнения элементов в элементе управления.
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
Значение свойства
Интерфейс IEnumerable или IListSource, содержащий коллекцию значений, используемую для передачи данных в этот элемент управления. Значение по умолчанию — null
.
- Атрибуты
Исключения
Не удается разрешить источник данных, поскольку значение указанно и для свойства DataSource, и для свойства DataSourceID.
Источник данных имеет недопустимый тип. Источник данных должен иметь значение null
или реализовывать интерфейс IEnumerable или IListSource.
Примеры
В следующем примере кода показано, как использовать DataSource свойство , чтобы указать источник данных для привязки к элементу 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>
Комментарии
Используйте свойство , DataSource чтобы указать источник значений для привязки к элементу управления перечислением данных. Источником данных должна быть коллекция, реализующая интерфейс System.Collections.IEnumerable (например System.Data.DataView, , System.Collections.ArrayListили System.Collections.Generic.List<T>) или интерфейс для привязки IListSource к элементу управления, производного от BaseDataList класса . При установке DataSource свойства необходимо вручную написать код для выполнения привязки данных.
Если источник данных, указанный свойством DataSource , содержит несколько источников данных, используйте DataMember свойство , чтобы указать конкретный источник для привязки к элементу управления . Например, если у вас есть System.Data.DataSet объект с несколькими таблицами, необходимо указать таблицу для привязки к элементу управления . После указания источника данных используйте метод для привязки DataBind источника данных к элементу управления .
Кроме того, можно использовать свойство для автоматической привязки DataSourceID к источнику данных, представленному элементом управления источником данных. При установке DataSourceID свойства элемент управления перечислением данных автоматически привязывается к указанному элементу управления источником данных. Вам не нужно писать код, который явно вызывает DataBind метод .
Если для DataSource свойства и DataSourceID заданы значения, ASP.NET не может разрешить источник данных и System.Web.HttpException создается исключение.
Значение для данного свойства нельзя задать с помощью тем или тем таблиц стилей. Дополнительные сведения см. в разделе ThemeableAttribute и ASP.NET темы и обложки.