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

Definizione

Ottiene o imposta il nome di una classe utilizzata dal controllo ObjectDataSource per un parametro in un'operazione sui dati di aggiornamento, inserimento o eliminazione, invece di passare singoli valori dal controllo con associazione a dati.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

Valore della proprietà

Nome di classe parziale o completo che identifica il tipo di oggetto che ObjectDataSource può utilizzare come parametro per Insert(), Update() o un'operazione 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. Il valore predefinito è una stringa vuota ("").The default is an empty string ("").

Esempi

La sezione contiene due esempi di codice.The section contains two code examples. Nel primo esempio di codice viene illustrato come implementare un tipo che combina tutti i valori dei parametri in un unico DataObjectTypeName oggetto, utilizzando la proprietà.The first code example demonstrates how to implement a type that combines all parameter values into one object, using the DataObjectTypeName property. Nel secondo esempio di codice viene illustrata la pagina Web che utilizza le due classi utilizzate nel primo esempio di codice.The second code example shows the Web page that uses the two classes that are used in the first code example.

Nell'esempio di codice riportato di seguito viene illustrato come implementare un tipo che combina tutti i valori dei parametri in DataObjectTypeName un unico oggetto, utilizzando la proprietà.The following code example demonstrates how to implement a type that combines all parameter values into one object, using the DataObjectTypeName property. AggregateData Il metodo Select della classe restituisce un DataTable oggetto con due colonne denominate Number Name e.The select method of the AggregateData class returns a DataTable object with two columns named Name and Number. Analogamente, NewData la classe definisce due proprietà di lettura/ Name scrittura Number, e.Similarly, the NewData class defines two read/write properties, Name and Number. Il Insert metodo NewDatadella classe accetta un parametro di tipo. AggregateDataThe Insert method of the AggregateData class takes one parameter of type NewData. La TypeName AggregateData proprietà DataObjectTypeName di è impostata su e la proprietà è impostata su NewData. ObjectDataSourceThe 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

Nell'esempio di codice riportato di seguito viene illustrata la pagina Web che utilizza le due classi utilizzate nell'esempio di codice precedente.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>

Commenti

Anziché specificare diversi parametri passati ai metodi Update, Inserte Delete , è possibile creare un oggetto che aggrega più valori di campo dati.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. Questo oggetto viene passato ai metodi, anziché a diversi parametri.This one object is passed to the methods, instead of several parameters.

Il comportamento predefinito di un ObjectDataSource controllo associato a un controllo con associazione a dati è che il controllo con associazione a dati crea un Parameter oggetto per ogni parametro nell'origine dati.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. Se l'oggetto business ha molti campi, anche il metodo risultante ha molti campi.If the business object has many fields, the resulting method also has many fields. La DataObjectTypeName proprietà consente di specificare un tipo che dispone di una proprietà per ogni campo dati.The DataObjectTypeName property allows you to specify a type that has a property for each data field. Quindi, anziché passare diversi parametri al metodo, il runtime crea un oggetto e imposta tutte le relative proprietà.Then, instead of passing several parameters to the method, the runtime creates one object and sets all of its properties. Questo oggetto viene aggiunto alla raccolta Parameters per la chiamata al metodo.This one object is added to the parameters collection for the method call.

Il tipo specificato dalla DataObjectTypeName proprietà deve avere un costruttore senza parametri senza parametri, quindi il ObjectDataSource controllo può creare un'istanza del tipo.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. Il tipo deve avere anche proprietà impostabili che consentono ObjectDataSource al controllo di popolare l'oggetto con i valori passati dal controllo con associazione a dati.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. È previsto che i nomi ObjectDataSource di proprietà nel controllo corrispondano esattamente ai nomi di parametro dei valori passati dal controllo con associazione a dati.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.

Quando la DataObjectTypeName proprietà è impostata e il ObjectDataSource controllo è associato a un controllo con associazione a dati, i metodi specificati dalle InsertMethod proprietà e DeleteMethod devono avere un solo parametro del tipo specificato nel parametro DataObjectTypeName proprietà.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. Se la ConflictDetection proprietà è impostata OverwriteChanges sul valore, il metodo specificato dalla UpdateMethod proprietà deve avere un parametro DataObjectTypeName del tipo specificato nella proprietà.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. Se la ConflictDetection proprietà è impostata CompareAllValues sul valore, il metodo specificato dalla UpdateMethod proprietà deve avere due parametri DataObjectTypeName del tipo specificato nella proprietà.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. Il primo parametro contiene i valori originali. il secondo parametro contiene i nuovi valori.The first parameter contains the original values; the second parameter contains the new values.

La DataObjectTypeName proprietà delega DataObjectTypeName alla proprietà dell' ObjectDataSourceView oggetto associato ObjectDataSource al controllo.The DataObjectTypeName property delegates to the DataObjectTypeName property of the ObjectDataSourceView that is associated with the ObjectDataSource control.

Si applica a

Vedi anche