ObjectDataSource.DataObjectTypeName ObjectDataSource.DataObjectTypeName ObjectDataSource.DataObjectTypeName ObjectDataSource.DataObjectTypeName Property

정의

데이터 바인딩된 컨트롤의 개별 값을 전달하는 대신 ObjectDataSource 컨트롤에서 데이터 업데이트, 삽입 또는 삭제 작업의 매개 변수로 사용할 클래스의 이름을 가져오거나 설정합니다.Gets or sets the name of a class that the ObjectDataSource control uses for a parameter in an update, insert, or delete data operation, instead of passing individual values from the data-bound control.

public:
 property System::String ^ DataObjectTypeName { System::String ^ get(); void set(System::String ^ value); };
public string DataObjectTypeName { get; set; }
member this.DataObjectTypeName : string with get, set
Public Property DataObjectTypeName As String

속성 값

ObjectDataSource에서 Insert(), Update() 또는 Delete() 작업의 매개 변수로 사용할 수 있는 개체의 형식을 식별하는 정규화된 또는 부분적으로 정규화된 클래스 이름입니다.A partially or fully qualified class name that identifies the type of the object that the ObjectDataSource can use as a parameter for an Insert(), Update(), or a Delete() operation. 기본값은 빈 문자열("")입니다.The default is an empty string ("").

예제

섹션에는 두 코드 예제가 있습니다.The section contains two code examples. 첫 번째 코드 예제에는 모든 매개 변수 값을 하나 이상의 개체를 결합 하는 형식을 구현 하는 방법을 보여 줍니다.를 사용 하는 DataObjectTypeName 속성입니다.The first code example demonstrates how to implement a type that combines all parameter values into one object, using the DataObjectTypeName property. 두 번째 코드 예제에서는 첫 번째 코드 예제에 사용 되는 두 개의 클래스를 사용 하는 웹 페이지를 보여 줍니다.The second code example shows the Web page that uses the two classes that are used in the first code example.

다음 코드 예제에는 모든 매개 변수 값을 하나 이상의 개체를 결합 하는 형식을 구현 하는 방법을 보여 줍니다.를 사용 하 여 DataObjectTypeName 속성입니다.The following code example demonstrates how to implement a type that combines all parameter values into one object, using the DataObjectTypeName property. select 메서드를 AggregateData 반환 클래스를 DataTable 이라는 두 개의 열을 사용 하 여 개체 NameNumber합니다.The select method of the AggregateData class returns a DataTable object with two columns named Name and Number. 마찬가지로, 합니다 NewData 클래스에는 두 개의 읽기/쓰기 속성을 정의 NameNumber입니다.Similarly, the NewData class defines two read/write properties, Name and Number. 합니다 Insert 메서드를 AggregateData 형식의 매개 변수 하나를 사용 하는 클래스가 NewData합니다.The Insert method of the AggregateData class takes one parameter of type NewData. TypeName 의 속성을 ObjectDataSource 로 설정 된 AggregateDataDataObjectTypeName 속성 NewData.The TypeName property of the ObjectDataSource is set to AggregateData and the DataObjectTypeName property is set to NewData.

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; }
		}

	}
}
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

다음 코드 예제에서는 앞의 코드 예제에 사용 되는 두 개의 클래스를 사용 하는 웹 페이지를 보여 줍니다.The following code example shows the Web page that uses the two classes that are used in the preceding code example.

<%@ 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 xmlns="http://www.w3.org/1999/xhtml" >
<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>
<%@ 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 xmlns="http://www.w3.org/1999/xhtml" >
<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>

설명

에 전달 되는 여러 매개 변수를 지정 하는 대신 합니다 Update, Insert, 및 Delete 메서드를 여러 데이터 필드 값을 집계 하는 하나의 개체를 만들 수 있습니다.Instead of specifying several parameters that are passed to the Update, Insert, and Delete methods, you can create one object that aggregates several data field values. 이 개체는 한 방법에 몇 가지 매개 변수 대신 전달 됩니다.This one object is passed to the methods, instead of several parameters.

기본 동작을 ObjectDataSource 데이터 바인딩된 컨트롤에 바인딩되는 컨트롤은 데이터 바인딩된 컨트롤을 만듭니다는 Parameter 데이터 소스의 각 매개 변수에 대 한 개체입니다.The default behavior of an ObjectDataSource control that is bound to a data-bound control is that the data-bound control creates a Parameter object for each parameter in the data source. 비즈니스 개체에 많은 필드가 있으면 결과 메서드에 많은 필드가 수도 있습니다.If the business object has many fields, the resulting method also has many fields. DataObjectTypeName 속성을 사용 하면 각 데이터 필드에 대 한 속성을 갖는 형식에 지정할 수 있습니다.The DataObjectTypeName property allows you to specify a type that has a property for each data field. 그런 다음 여러 매개 변수를 메서드에 전달 하는 대신 런타임에 하나의 개체를 만들고 모든 속성을 설정 합니다.Then, instead of passing several parameters to the method, the runtime creates one object and sets all of its properties. 이 개체는 메서드 호출에 대 한 매개 변수 컬렉션에 추가 됩니다.This one object is added to the parameters collection for the method call.

DataObjectTypeName 속성에 지정 된 형식에는 매개 변수가 없는 매개 변수가 없는 생성자가 있어야 하므로 컨트롤에서 ObjectDataSource 형식의 인스턴스를 만들 수 있습니다.The type that is specified by the DataObjectTypeName property must have a parameterless constructor that has no parameters, so the ObjectDataSource control can create an instance of the type. 형식에는 사용할 수 있는 속성을 설정할 수 있어야 합니다.는 ObjectDataSource 데이터 바인딩된 컨트롤에서 전달 되는 값을 사용 하 여 개체를 채울 컨트롤입니다.The type must also have settable properties that allow the ObjectDataSource control to populate the object with values that are passed from the data-bound control. 속성 이름이 ObjectDataSource 컨트롤 데이터 바인딩된 컨트롤에 의해 전달 되는 값의 매개 변수 이름과 정확히 일치 해야 합니다.The property names on the ObjectDataSource control are expected to exactly match the parameter names of values that are passed by the data-bound control.

경우는 DataObjectTypeName 속성을 설정 및 ObjectDataSource 컨트롤은 데이터 바인딩된 컨트롤에서 지정 된 메서드를 사용 하 여 연결 합니다 InsertMethodDeleteMethod 속성 각각 한 개의 매개 변수만 는에지정된형식의DataObjectTypeName 속성입니다.When the DataObjectTypeName property is set and the ObjectDataSource control is associated with a data-bound control, the methods that are specified by the InsertMethod and DeleteMethod properties must each have one parameter of the type that is specified in the DataObjectTypeName property. 경우는 ConflictDetection 속성을 OverwriteChanges 값을 지정 된 메서드는 UpdateMethod 속성에 지정 된 형식의 매개 변수 하나 있어야 합니다.는 DataObjectTypeName 속성.If the ConflictDetection property is set to the OverwriteChanges value, the method that is specified by the UpdateMethod property must have one parameter of the type that is specified in the DataObjectTypeName property. 경우는 ConflictDetection 속성을 CompareAllValues 값을 지정 된 메서드는 UpdateMethod 속성에 지정 된 형식의 두 매개 변수가 있어야 합니다.는 DataObjectTypeName 속성.If the ConflictDetection property is set to the CompareAllValues value, the method that is specified by the UpdateMethod property must have two parameters of the type that is specified in the DataObjectTypeName property. 원래 값을 포함 하는 첫 번째 매개 변수 두 번째 매개 변수 새 값을 포함 합니다.The first parameter contains the original values; the second parameter contains the new values.

DataObjectTypeName 에 위임 하는 속성을 DataObjectTypeName 의 속성을 ObjectDataSourceView 연관 된는 ObjectDataSource 컨트롤.The DataObjectTypeName property delegates to the DataObjectTypeName property of the ObjectDataSourceView that is associated with the ObjectDataSource control.

적용 대상

추가 정보