ObjectDataSource.DataObjectTypeName Właściwość

Definicja

Pobiera lub ustawia nazwę klasy, która jest ObjectDataSource wykorzystywana przez formant w operacji Update, INSERT lub DELETE Data, zamiast przekazywać poszczególne wartości z formantu powiązanego z danymi.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

Wartość właściwości

String

Częściowo lub w pełni kwalifikowana nazwa klasy, która identyfikuje typ obiektu, który ObjectDataSource może być używany jako parametr dla Insert() , Update() lub Delete() operacji.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. Wartością domyślną jest ciąg pusty ("").The default is an empty string ("").

Przykłady

Sekcja zawiera dwa przykłady kodu.The section contains two code examples. Pierwszy przykład kodu demonstruje, jak zaimplementować typ, który łączy wszystkie wartości parametrów w jeden obiekt przy użyciu DataObjectTypeName właściwości.The first code example demonstrates how to implement a type that combines all parameter values into one object, using the DataObjectTypeName property. Drugi przykład kodu pokazuje stronę sieci Web, która używa dwóch klas, które są używane w pierwszym przykładzie kodu.The second code example shows the Web page that uses the two classes that are used in the first code example.

Poniższy przykład kodu demonstruje, jak zaimplementować typ, który łączy wszystkie wartości parametrów w jeden obiekt przy użyciu DataObjectTypeName właściwości.The following code example demonstrates how to implement a type that combines all parameter values into one object, using the DataObjectTypeName property. Metoda SELECT AggregateData klasy zwraca DataTable obiekt z dwiema kolumnami o nazwie Name i Number .The select method of the AggregateData class returns a DataTable object with two columns named Name and Number. Podobnie NewData Klasa definiuje dwie właściwości do odczytu/zapisu Name i Number .Similarly, the NewData class defines two read/write properties, Name and Number. InsertMetoda AggregateData klasy przyjmuje jeden parametr typu NewData .The Insert method of the AggregateData class takes one parameter of type NewData. TypeNameWłaściwość ObjectDataSource jest ustawiona na AggregateData , a DataObjectTypeName Właściwość jest ustawiona na 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

Poniższy przykład kodu pokazuje stronę sieci Web, która używa dwóch klas, które są używane w poprzednim przykładzie kodu.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>

Uwagi

Zamiast określać kilka parametrów, które są przenoszone Update do Insert metod,, i Delete , można utworzyć jeden obiekt, który agreguje kilka wartości pól danych.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. Ten jeden obiekt jest przesyłany do metod, a nie do kilku parametrów.This one object is passed to the methods, instead of several parameters.

Domyślne zachowanie formantu powiązanego z ObjectDataSource kontrolką powiązaną z danymi polega na tym, że formant powiązany z danymi tworzy Parameter obiekt dla każdego parametru w źródle danych.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. Jeśli obiekt biznesowy ma wiele pól, wynikiem metody również ma wiele pól.If the business object has many fields, the resulting method also has many fields. DataObjectTypeNameWłaściwość pozwala określić typ, który ma właściwość dla każdego pola danych.The DataObjectTypeName property allows you to specify a type that has a property for each data field. Następnie, zamiast przekazywać kilka parametrów do metody, środowisko uruchomieniowe tworzy jeden obiekt i ustawia wszystkie jego właściwości.Then, instead of passing several parameters to the method, the runtime creates one object and sets all of its properties. Ten obiekt jest dodawany do kolekcji parametrów dla wywołania metody.This one object is added to the parameters collection for the method call.

Typ określony przez DataObjectTypeName Właściwość musi mieć Konstruktor bez parametrów, który nie ma parametrów, więc ObjectDataSource formant może utworzyć wystąpienie typu.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. Typ musi również mieć właściwości settable, które umożliwiają ObjectDataSource kontrolce wypełnienie obiektu wartościami, które są przesyłane z formantu powiązanego z danymi.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. Nazwy właściwości w ObjectDataSource kontrolce powinny dokładnie pasować do nazw parametrów wartości, które są przesyłane przez formant powiązany z danymi.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.

Gdy DataObjectTypeName Właściwość jest ustawiona, a ObjectDataSource kontrolka jest skojarzona z kontrolką powiązaną z danymi, metody, które są określone przez InsertMethod DeleteMethod właściwości i muszą mieć jeden parametr typu, który jest określony we DataObjectTypeName właściwości.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. Jeśli ConflictDetection Właściwość jest ustawiona na OverwriteChanges wartość, metoda, która jest określona przez UpdateMethod Właściwość, musi mieć jeden parametr typu, który jest określony we DataObjectTypeName właściwości.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. Jeśli ConflictDetection Właściwość jest ustawiona na CompareAllValues wartość, metoda, która jest określona przez UpdateMethod Właściwość, musi mieć dwa parametry typu, który jest określony we DataObjectTypeName właściwości.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. Pierwszy parametr zawiera oryginalne wartości; drugi parametr zawiera nowe wartości.The first parameter contains the original values; the second parameter contains the new values.

DataObjectTypeNameWłaściwość delegowana do DataObjectTypeName właściwości ObjectDataSourceView , która jest skojarzona z ObjectDataSource kontrolką.The DataObjectTypeName property delegates to the DataObjectTypeName property of the ObjectDataSourceView that is associated with the ObjectDataSource control.

Dotyczy

Zobacz też