ObjectDataSource.DataObjectTypeName 속성

정의

데이터 바인딩된 컨트롤의 개별 값을 전달하는 대신 ObjectDataSource 컨트롤에서 데이터 업데이트, 삽입 또는 삭제 작업의 매개 변수로 사용할 클래스의 이름을 가져오거나 설정합니다.

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() 작업의 매개 변수로 사용할 수 있는 개체의 형식을 식별하는 정규화된 또는 부분적으로 정규화된 클래스 이름입니다. 기본값은 빈 문자열("")입니다.

예제

섹션에는 두 코드 예제가 있습니다. 첫 번째 코드 예제에는 모든 매개 변수 값을 하나 이상의 개체를 결합 하는 형식을 구현 하는 방법을 보여 줍니다.를 사용 하는 DataObjectTypeName 속성입니다. 두 번째 코드 예제에서는 첫 번째 코드 예제에 사용 되는 두 개의 클래스를 사용 하는 웹 페이지를 보여 줍니다.

다음 코드 예제에는 모든 매개 변수 값을 하나 이상의 개체를 결합 하는 형식을 구현 하는 방법을 보여 줍니다.를 사용 하 여 DataObjectTypeName 속성입니다. select 메서드를 AggregateData 반환 클래스를 DataTable 이라는 두 개의 열을 사용 하 여 개체 NameNumber합니다. 마찬가지로, 합니다 NewData 클래스에는 두 개의 읽기/쓰기 속성을 정의 NameNumber입니다. 합니다 Insert 메서드를 AggregateData 형식의 매개 변수 하나를 사용 하는 클래스가 NewData합니다. TypeName 의 속성을 ObjectDataSource 로 설정 된 AggregateDataDataObjectTypeName 속성 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

다음 코드 예제에서는 앞의 코드 예제에 사용 되는 두 개의 클래스를 사용 하는 웹 페이지를 보여 줍니다.

<%@ 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 메서드를 여러 데이터 필드 값을 집계 하는 하나의 개체를 만들 수 있습니다. 이 개체는 한 방법에 몇 가지 매개 변수 대신 전달 됩니다.

기본 동작을 ObjectDataSource 데이터 바인딩된 컨트롤에 바인딩되는 컨트롤은 데이터 바인딩된 컨트롤을 만듭니다는 Parameter 데이터 소스의 각 매개 변수에 대 한 개체입니다. 비즈니스 개체에 많은 필드가 있으면 결과 메서드에 많은 필드가 수도 있습니다. DataObjectTypeName 속성을 사용 하면 각 데이터 필드에 대 한 속성을 갖는 형식에 지정할 수 있습니다. 그런 다음 여러 매개 변수를 메서드에 전달 하는 대신 런타임에 하나의 개체를 만들고 모든 속성을 설정 합니다. 이 개체는 메서드 호출에 대 한 매개 변수 컬렉션에 추가 됩니다.

속성에 의해 DataObjectTypeName 지정된 형식에는 매개 변수가 없는 생성자가 있어야 합니다. 따라서 컨트롤은 ObjectDataSource 형식의 인스턴스를 만들 수 있습니다. 형식에는 사용할 수 있는 속성을 설정할 수 있어야 합니다.는 ObjectDataSource 데이터 바인딩된 컨트롤에서 전달 되는 값을 사용 하 여 개체를 채울 컨트롤입니다. 속성 이름이 ObjectDataSource 컨트롤 데이터 바인딩된 컨트롤에 의해 전달 되는 값의 매개 변수 이름과 정확히 일치 해야 합니다.

경우는 DataObjectTypeName 속성을 설정 및 ObjectDataSource 컨트롤은 데이터 바인딩된 컨트롤에서 지정 된 메서드를 사용 하 여 연결 합니다 InsertMethodDeleteMethod 속성 각각 한 개의 매개 변수만 는에지정된형식의DataObjectTypeName 속성입니다. 경우는 ConflictDetection 속성을 OverwriteChanges 값을 지정 된 메서드는 UpdateMethod 속성에 지정 된 형식의 매개 변수 하나 있어야 합니다.는 DataObjectTypeName 속성. 경우는 ConflictDetection 속성을 CompareAllValues 값을 지정 된 메서드는 UpdateMethod 속성에 지정 된 형식의 두 매개 변수가 있어야 합니다.는 DataObjectTypeName 속성. 원래 값을 포함 하는 첫 번째 매개 변수 두 번째 매개 변수 새 값을 포함 합니다.

DataObjectTypeName 에 위임 하는 속성을 DataObjectTypeName 의 속성을 ObjectDataSourceView 연관 된는 ObjectDataSource 컨트롤.

적용 대상

추가 정보