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

Définition

Obtient ou définit le nom d'une classe utilisée par le contrôle ObjectDataSource pour un paramètre dans une opération de mise à jour, d'insertion ou de suppression, au lieu de passer les valeurs individuelles du contrôle lié aux données.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

Valeur de propriété

Nom de classe complètement ou partiellement qualifié qui identifie le type de l'objet que ObjectDataSource peut utiliser comme paramètre pour une opération Insert(), Update() ou 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. La valeur par défaut est une chaîne vide ("").The default is an empty string ("").

Exemples

La section contient deux exemples de code.The section contains two code examples. Le premier exemple de code montre comment implémenter un type qui combine toutes les valeurs de paramètre dans un objet DataObjectTypeName , à l’aide de la propriété.The first code example demonstrates how to implement a type that combines all parameter values into one object, using the DataObjectTypeName property. Le deuxième exemple de code montre la page Web qui utilise les deux classes utilisées dans le premier exemple de code.The second code example shows the Web page that uses the two classes that are used in the first code example.

L’exemple de code suivant montre comment implémenter un type qui combine toutes les valeurs de paramètre dans un seul DataObjectTypeName objet, à l’aide de la propriété.The following code example demonstrates how to implement a type that combines all parameter values into one object, using the DataObjectTypeName property. La méthode Select de la AggregateData classe retourne un DataTable objet avec deux colonnes nommées Number Name et.The select method of the AggregateData class returns a DataTable object with two columns named Name and Number. De même, la NewData classe définit deux propriétés en lecture/écriture Name , Numberet.Similarly, the NewData class defines two read/write properties, Name and Number. La Insert méthode de la AggregateData classe prend un paramètre de type NewData.The Insert method of the AggregateData class takes one parameter of type NewData. La TypeName AggregateData propriété DataObjectTypeName de a la valeur et la propriété a la valeur 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

L’exemple de code suivant affiche la page Web qui utilise les deux classes utilisées dans l’exemple de code précédent.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>

Remarques

Au lieu de spécifier plusieurs paramètres qui sont passés aux Updateméthodes Insert, et Delete , vous pouvez créer un objet qui agrège plusieurs valeurs de champ de données.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. Cet objet est passé aux méthodes, au lieu de plusieurs paramètres.This one object is passed to the methods, instead of several parameters.

Le comportement par défaut d' ObjectDataSource un contrôle lié à un contrôle lié aux données est que le contrôle lié aux données crée un Parameter objet pour chaque paramètre dans la source de données.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. Si l’objet métier contient de nombreux champs, la méthode résultante a également de nombreux champs.If the business object has many fields, the resulting method also has many fields. La DataObjectTypeName propriété vous permet de spécifier un type qui a une propriété pour chaque champ de données.The DataObjectTypeName property allows you to specify a type that has a property for each data field. Ensuite, au lieu de passer plusieurs paramètres à la méthode, le runtime crée un objet et définit toutes ses propriétés.Then, instead of passing several parameters to the method, the runtime creates one object and sets all of its properties. Cet objet est ajouté à la collection de paramètres pour l’appel de méthode.This one object is added to the parameters collection for the method call.

Le type qui est spécifié par la DataObjectTypeName propriété doit avoir un constructeur sans paramètre qui n’a pas de paramètres, ObjectDataSource donc le contrôle peut créer une instance du type.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. Le type doit également avoir des propriétés définissables qui ObjectDataSource permettent au contrôle de remplir l’objet avec les valeurs passées à partir du contrôle lié aux données.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. Les noms de propriété sur ObjectDataSource le contrôle sont censés correspondre exactement aux noms de paramètres des valeurs passées par le contrôle lié aux données.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.

Lorsque la DataObjectTypeName propriété est définie et que ObjectDataSource le contrôle est associé à un contrôle lié aux données, les méthodes spécifiées par les InsertMethod propriétés DeleteMethod et doivent chacune avoir un paramètre du type spécifié dans le DataObjectTypeName propriété.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. Si la OverwriteChanges UpdateMethod DataObjectTypeName propriété est définie sur la valeur, la méthode spécifiée par la propriété doit avoir un paramètre du type spécifié dans la propriété. ConflictDetectionIf 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. Si la CompareAllValues UpdateMethod DataObjectTypeName propriété est définie sur la valeur, la méthode spécifiée par la propriété doit avoir deux paramètres du type spécifié dans la propriété. ConflictDetectionIf 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. Le premier paramètre contient les valeurs d’origine; le deuxième paramètre contient les nouvelles valeurs.The first parameter contains the original values; the second parameter contains the new values.

La DataObjectTypeName propriété délègue à DataObjectTypeName la propriété du ObjectDataSourceView associé ObjectDataSource au contrôle.The DataObjectTypeName property delegates to the DataObjectTypeName property of the ObjectDataSourceView that is associated with the ObjectDataSource control.

S’applique à

Voir aussi