ObjectDataSource.DataObjectTypeName プロパティ
アセンブリ: System.Web (system.web.dll 内)

Dim instance As ObjectDataSource Dim value As String value = instance.DataObjectTypeName instance.DataObjectTypeName = value
/** @property */ public String get_DataObjectTypeName () /** @property */ public void set_DataObjectTypeName (String value)
public function get DataObjectTypeName () : String public function set DataObjectTypeName (value : String)
ObjectDataSource が Insert、Update、Delete の各操作のパラメータとして使用できるオブジェクトの型を識別する、部分修飾クラス名または完全修飾クラス名。既定値は空の文字列 ("") です。

Update、Insert、Delete の各メソッドに渡される複数のパラメータを指定する代わりに、複数のデータ フィールド値を集約した 1 つのオブジェクトを作成できます。複数のパラメータの代わりに、このオブジェクトがメソッドに渡されます。
データ バインド コントロールにバインドされた ObjectDataSource コントロールの既定の動作では、データ バインド コントロールはデータ ソースのパラメータごとに Parameter オブジェクトを作成します。ビジネス オブジェクトに多数のフィールドがある場合、結果として得られるメソッドにも多数のフィールドが含まれます。DataObjectTypeName プロパティを使用すると、各データ フィールドのプロパティを持つ型を指定できます。次に、ランタイムは複数のパラメータをメソッドに渡す代わりに、オブジェクトを 1 つ作成し、そのすべてのプロパティを設定します。このオブジェクトは、メソッド呼び出しに使用するパラメータ コレクションに追加されます。
DataObjectTypeName プロパティで指定された型は、パラメータを持たない既定のコンストラクタを持つ必要があるため、ObjectDataSource コントロールは型のインスタンスを作成できます。また、ObjectDataSource コントロールがデータ バインド コントロールから渡された値でオブジェクトを設定できるように、この型には設定可能なプロパティも必要となります。ObjectDataSource コントロールのプロパティ名は、データ バインド コントロールから渡される値のパラメータ名と完全に一致する必要があります。
DataObjectTypeName プロパティが設定され、ObjectDataSource コントロールがデータ バインド コントロールに関連付けられている場合、InsertMethod プロパティと DeleteMethod プロパティで指定されたメソッドは、それぞれ DataObjectTypeName プロパティで指定された型のパラメータを 1 つ持つ必要があります。ConflictDetection プロパティを OverwriteChanges 値に設定した場合、UpdateMethod プロパティで指定されたメソッドは、DataObjectTypeName プロパティで指定された型のパラメータを 1 つ持つ必要があります。ConflictDetection プロパティを CompareAllValues 値に設定した場合には、UpdateMethod プロパティで指定されたメソッドは、DataObjectTypeName プロパティで指定された型のパラメータを 2 つ持つ必要があります。1 つ目のパラメータには元の値が格納され、2 つ目のパラメータには新しい値が格納されます。
DataObjectTypeName プロパティは、ObjectDataSource コントロールに関連付けられた ObjectDataSourceView の DataObjectTypeName プロパティに処理を代行させます。

このセクションには、2 つのコード例が含まれています。1 つ目のコード例では、DataObjectTypeName プロパティを使用して、すべてのパラメータ値を 1 つのオブジェクトに結合する型を実装する方法を示します。2 つ目のコード例では、1 つ目のコード例で使用されている 2 つのクラスを使用する Web ページを示します。
DataObjectTypeName プロパティを使用して、すべてのパラメータ値を 1 つのオブジェクトに結合する型を実装する方法を次のコード例に示します。AggregateData クラスの選択メソッドは、Name および Number という名前の 2 つの列を持つ DataTable オブジェクトを返します。同様に、NewData クラスは、Name および Number という 2 つの読み取り/書き込みプロパティを定義します。AggregateData クラスの Insert メソッドは、NewData 型のパラメータを 1 つ受け取ります。ObjectDataSource の TypeName プロパティが AggregateData に設定され、DataObjectTypeName プロパティが NewData に設定されます。
Imports System Imports System.Data Imports System.Configuration Imports System.Web Imports System.Web.Security Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.Web.UI.WebControls.WebParts Imports System.Web.UI.HtmlControls Namespace Samples.AspNet.VB Public Class AggregateData Public Sub New() End Sub Shared table As DataTable Private Function CreateData() As DataTable table = New DataTable() table.Columns.Add("Name", GetType(String)) table.Columns.Add("Number", GetType(Integer)) table.Rows.Add(New Object() {"one", 1}) table.Rows.Add(New Object() {"two", 2}) table.Rows.Add(New Object() {"three", 3}) Return table End Function Public Function SelectMethod() As DataTable If table Is Nothing Then Return CreateData() Else Return table End If End Function Public Function Insert(ByVal newRecord As NewData) As Integer table.Rows.Add(New Object() {newRecord.Name, newRecord.Number}) Return 1 End Function End Class Public Class NewData Private nameValue As String Private numberValue As Integer Public Property Name() As String Get Return nameValue End Get Set(ByVal value As String) nameValue = value End Set End Property Public Property Number() As Integer Get Return numberValue End Get Set(ByVal value As Integer) numberValue = value End Set End Property End Class End Namespace
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; namespace Samples.AspNet.CS { /// <summary> /// Summary description for AggregateData /// </summary> public class AggregateData { public AggregateData() { } static DataTable table; private DataTable CreateData() { table = new DataTable(); table.Columns.Add("Name", typeof(string)); table.Columns.Add("Number", typeof(int)); table.Rows.Add(new object[] { "one", 1 }); table.Rows.Add(new object[] { "two", 2 }); table.Rows.Add(new object[] { "three", 3 }); return table; } public DataTable Select() { if (table == null) { return CreateData(); } else { return table; } } public int Insert(NewData newRecord) { table.Rows.Add(new object[] { newRecord.Name, newRecord.Number }); return 1; } } public class NewData { private string nameValue; private int numberValue; public string Name { get { return nameValue; } set { nameValue = value; } } public int Number { get { return numberValue; } set { numberValue = value; } } } }
前のコード例で使用されている 2 つのクラスを使用する Web ページを次のコード例に示します。
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB" Assembly="Samples.AspNet.VB" %> <%@ Page Language="VB" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> </script> <html > <head runat="server"> <title>ObjectDataSource - DataObjectTypeName Property Example</title> </head> <body> <form id="form1" runat="server"> <div> <asp:DetailsView ID="DetailsView1" runat="server" AllowPaging="True" AutoGenerateInsertButton="True" DataSourceID="ObjectDataSource1" Height="50px" Width="125px"> </asp:DetailsView> <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DataObjectTypeName="Samples.AspNet.VB.NewData" InsertMethod="Insert" SelectMethod="SelectMethod" TypeName="Samples.AspNet.VB.AggregateData"> </asp:ObjectDataSource> </div> </form> </body> </html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="Samples.AspNet.CS" %> <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> </script> <html > <head runat="server"> <title>ObjectDataSource - DataObjectTypeName Property Example</title> </head> <body> <form id="form1" runat="server"> <div> <asp:DetailsView ID="DetailsView1" runat="server" AllowPaging="True" AutoGenerateInsertButton="True" DataSourceID="ObjectDataSource1" Height="50px" Width="125px"> </asp:DetailsView> <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DataObjectTypeName="Samples.AspNet.CS.NewData" InsertMethod="Insert" SelectMethod="Select" TypeName="Samples.AspNet.CS.AggregateData"> </asp:ObjectDataSource> </div> </form> </body> </html>

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からObjectDataSource.DataObjectTypeName プロパティを検索する場合は、下記のリンクをクリックしてください。

- ObjectDataSource.DataObjectTypeName プロパティのページへのリンク