ObjectDataSource.DataObjectTypeName Özellik

Tanım

Denetimin veriye bağlı denetimden tek tek değerleri geçirmek yerine bir güncelleştirme, ekleme veya silme işleminde parametre için kullandığı bir sınıfın ObjectDataSource adını alır veya ayarlar.

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

Özellik Değeri

öğesinin bir , Update()veya işlemi için Insert()parametre olarak kullanabileceği nesnenin ObjectDataSource türünü tanımlayan kısmen veya Delete() tam sınıf adı. Varsayılan değer, boş dizedir ("").

Örnekler

bölümünde iki kod örneği bulunur. İlk kod örneği, özelliğini kullanarak tüm parametre değerlerini tek bir nesnede birleştiren bir türün nasıl uygulandığını DataObjectTypeName gösterir. İkinci kod örneği, ilk kod örneğinde kullanılan iki sınıfı kullanan Web sayfasını gösterir.

Aşağıdaki kod örneği, özelliğini kullanarak tüm parametre değerlerini tek bir nesnede birleştiren bir türün nasıl uygulandığını DataObjectTypeName gösterir. sınıfının select yöntemiAggregateData, ve Numberadlı Name iki sütunu olan bir DataTable nesne döndürür. Benzer şekilde, NewData sınıfı iki okuma/yazma özelliği Name tanımlar ve Number. Insert sınıfının yöntemi AggregateData türünde NewDatabir parametre alır. TypeName özelliği ObjectDataSource olarak AggregateDataDataObjectTypeName, özelliği ise olarak NewDataayarlanır.

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

Aşağıdaki kod örneği, önceki kod örneğinde kullanılan iki sınıfı kullanan Web sayfasını gösterir.

<%@ 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>

Açıklamalar

, Insertve Delete yöntemlerine Updategeçirilen birkaç parametre belirtmek yerine, çeşitli veri alanı değerlerini toplayan bir nesne oluşturabilirsiniz. Bu bir nesne, birkaç parametre yerine yöntemlere geçirilir.

Veriye bağlı denetime bağlı bir ObjectDataSource denetimin varsayılan davranışı, veriye bağlı denetimin veri kaynağındaki her parametre için bir Parameter nesne oluşturmasıdır. İş nesnesinin birçok alanı varsa, sonuçta elde edilen yöntemin de birçok alanı vardır. özelliği, DataObjectTypeName her veri alanı için özelliği olan bir tür belirtmenize olanak tanır. Ardından, yönteme birkaç parametre geçirmek yerine çalışma zamanı bir nesne oluşturur ve tüm özelliklerini ayarlar. Bu bir nesne yöntem çağrısı için parameters koleksiyonuna eklenir.

özelliği tarafından belirtilen türün DataObjectTypeName parametresiz bir oluşturucuya sahip olması gerekir, böylece ObjectDataSource denetim türün bir örneğini oluşturabilir. Türün, denetimin nesneyi veriye bağlı denetimden geçirilen değerlerle doldurmasını sağlayan ObjectDataSource ayarlanabilir özelliklere de sahip olması gerekir. Denetimdeki özellik adlarının ObjectDataSource , veriye bağlı denetim tarafından geçirilen değerlerin parametre adlarıyla tam olarak eşleşmesi beklenir.

DataObjectTypeName özellik ayarlandığında ve ObjectDataSource denetim bir veriye bağlı denetimle ilişkilendirildiğinde, ve DeleteMethod özellikleri tarafından InsertMethod belirtilen yöntemlerin her biri özelliğinde belirtilen türde bir parametreye DataObjectTypeName sahip olmalıdır. ConflictDetection özelliği değerine ayarlanırsaOverwriteChanges, özelliği tarafından belirtilen yöntemin UpdateMethod özelliğinde DataObjectTypeName belirtilen türde bir parametresi olmalıdır. ConflictDetection özelliği değerine ayarlanırsaCompareAllValues, özelliği tarafından belirtilen yöntemin UpdateMethod özelliğinde DataObjectTypeName belirtilen türde iki parametresi olmalıdır. İlk parametre özgün değerleri içerir; İkinci parametre yeni değerleri içerir.

özelliği DataObjectTypeNameDataObjectTypeName , denetimiyle ilişkili özelliğini ObjectDataSourceView temsil eder ObjectDataSource .

Şunlara uygulanır

Ayrıca bkz.