BaseDataList.DataSource プロパティ
コントロール内に項目を設定するために使用する値のリストを格納しているソースを取得または設定します。
名前空間: System.Web.UI.WebControls
アセンブリ: System.Web (system.web.dll 内)
構文
'宣言
<ThemeableAttribute(False)> _
<BindableAttribute(True)> _
Public Overridable Property DataSource As Object
'使用
Dim instance As BaseDataList
Dim value As Object
value = instance.DataSource
instance.DataSource = value
[ThemeableAttribute(false)]
[BindableAttribute(true)]
public virtual Object DataSource { get; set; }
[ThemeableAttribute(false)]
[BindableAttribute(true)]
public:
virtual property Object^ DataSource {
Object^ get ();
void set (Object^ value);
}
/** @property */
public Object get_DataSource ()
/** @property */
public void set_DataSource (Object value)
public function get DataSource () : Object
public function set DataSource (value : Object)
適用できません。
プロパティ値
このコントロールにデータを提供するために使用する値のコレクションを格納している IEnumerable または IListSource。既定値は null 参照 (Visual Basic では Nothing) です。
例外
例外の種類 | 条件 |
---|---|
DataSource プロパティと DataSourceID プロパティの両方に値が指定されているため、データ ソースを解決できません。 |
|
データ ソースの型が無効です。データ ソースは、null 参照 (Visual Basic では Nothing) にするか、IEnumerable または IListSource インターフェイスを実装する必要があります。 |
解説
DataSource プロパティを使用して、データ リスト コントロールに連結する値のソースを指定します。データ ソースは、BaseDataList クラスから派生したコントロールにバインドする System.Collections.IEnumerable インターフェイス (System.Data.DataView、System.Collections.ArrayList、System.Collections.Hashtable など) または IListSource インターフェイスを実装したオブジェクトである必要があります。DataSource プロパティを設定する場合は、データ バインディングを実行するコードを手動で記述する必要があります。
DataSource プロパティで指定されているデータ ソースが複数のデータ ソースを含む場合は、DataMember プロパティを使用して、コントロールにバインドする特定のソースを指定します。たとえば、複数のテーブルを持つ System.Data.DataSet オブジェクトがある場合は、コントロールにバインドするテーブルを指定する必要があります。データ ソースを指定したら、DataBind メソッドを使用して、データ ソースをコントロールに連結します。
また、DataSourceID プロパティを使用して、データ ソース コントロールで表されたデータ ソースへのバインディングを自動的に行うことができます。DataSourceID プロパティを設定すると、データ リスト コントロールは、指定したデータ ソース コントロールに自動的にバインドされます。DataBind メソッドを明示的に呼び出すコードを記述する必要はありません。
DataSource プロパティと DataSourceID プロパティの両方に値を指定した場合、ASP.NET はデータ ソースを解決できず、System.Web.HttpException 例外がスローされます。
このプロパティは、テーマまたはスタイル シート テーマによって設定することはできません。詳細については、ThemeableAttribute のトピックおよび「ASP.NET のテーマとスキンの概要」を参照してください。
使用例
DataSource プロパティを使用して、DataGrid コントロールにバインドするデータ ソースを指定する方法を、次のコード例に示します。
<%@ 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>
<%@ 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>
プラットフォーム
Windows 98,Windows Server 2000 SP4,Windows CE,Windows Millennium Edition,Windows Mobile for Pocket PC,Windows Mobile for Smartphone,Windows Server 2003,Windows XP Media Center Edition,Windows XP Professional x64 Edition,Windows XP SP2,Windows XP Starter Edition
Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。
バージョン情報
.NET Framework
サポート対象 : 3.0,2.0,1.1,1.0
参照
関連項目
BaseDataList クラス
BaseDataList メンバ
System.Web.UI.WebControls 名前空間
System.Collections.IEnumerable
IListSource
System.Data.DataView
System.Collections.ArrayList
System.Collections.Hashtable
System.Data.DataSet
DataSourceID