Cette documentation est archivée et n’est pas conservée.

LinqDataSource.Inserting, événement

Mise à jour : novembre 2007

Se produit avant une opération d'insertion.

Espace de noms :  System.Web.UI.WebControls
Assembly :  System.Web.Extensions (dans System.Web.Extensions.dll)

public event EventHandler<LinqDataSourceInsertEventArgs> Inserting
/** @event */
public void add_Inserting (EventHandler<LinqDataSourceInsertEventArgs> value)
/** @event */
public void remove_Inserting (EventHandler<LinqDataSourceInsertEventArgs> value)

JScript ne prend pas en charge les événements.
<asp:LinqDataSource OnInserting="EventHandler" />

Gérez l'événement Inserting pour valider l'objet à insérer, pour examiner les erreurs de validation de la classe de données, pour modifier une valeur avant l'insertion ou pour annuler l'opération d'insertion. L'objet LinqDataSourceInsertEventArgs passé aux gestionnaires d'événements pour cet événement contient le nouvel objet à insérer dans la source de données.

Si une erreur de validation se produit lors de l'opération d'insertion, l'objet LinqDataSourceInsertEventArgs contient les exceptions de validation levées par la classe de données. Une erreur de validation se produit si la valeur à insérer ne correspond pas au type de propriété de la classe de données, ou si elle ne satisfait pas à un contrôle de validation personnalisé. Dans un gestionnaire d'événements pour l'événement Inserting, vous pouvez récupérer les exceptions de validation et prendre les mesures appropriées.

Si une exception est levée dans un gestionnaire d'événements pour l'événement Inserting, vous devez gérer l'exception dans ce gestionnaire d'événements. L'exception ne sera pas passée à un gestionnaire d'événements pour l'événement Inserted (via la propriété Exception de l'objet LinqDataSourceStatusEventArgs). La propriété Exception ne contient que les exceptions levées après l'événement Inserting.

L'exemple suivant décrit un gestionnaire d'événements pour l'événement Inserting qui modifie les données avant l'opération d'insertion. L'objet de la propriété NewObject est casté à un type appelé Product. La propriété DateModified de l'objet Product a pour valeur la date et l'heure en cours.

protected void LinqDataSource_Inserting(object sender, LinqDataSourceInsertEventArgs e)
{
    Product product = (Product)e.NewObject;
    product.DateModified = DateTime.Now;
}


L'exemple suivant montre comment définir un gestionnaire d'événements pour l'événement Inserting qui récupère les exceptions de validation.

Protected Sub LinqDataSource_Inserting(ByVal sender As Object, _
        ByVal e As LinqDataSourceInsertEventArgs)
    If (e.Exception IsNot Nothing) Then
        For Each innerException As KeyValuePair(Of String, Exception) _
               In e.Exception.InnerExceptions
            Label1.Text &= innerException.Key & ": " & _
                innerException.Value.Message & "<br />"
        Next
        e.ExceptionHandled = True
    End If
End Sub

[C#]

protected void LinqDataSource_Inserting(object sender, 
        LinqDataSourceInsertEventArgs e)
{
    if (e.Exception != null)
    {
        foreach (KeyValuePair<string, Exception> innerException in 
             e.Exception.InnerExceptions)
        {
        Label1.Text += innerException.Key + ": " + 
            innerException.Value.Message + "<br />";
        }
        e.ExceptionHandled = true;
    }
}

L'exemple précédent récupère les exceptions de validation. Une exception peut se produire si une valeur ne correspond pas au type de la propriété. Elle peut également être levée à partir d'un contrôle personnalisé tel que celui de l'exemple suivant. La méthode OnAgeChanging vérifie que le nombre pour la propriété Age n'est pas négatif.

partial void  OnAgeChanging(int? value)
{
    if (value < 0)
    {
        throw new Exception("Age cannot be a negative number.");
    }
}

Windows Vista, Windows XP SP2, Windows Server 2003

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5
Afficher: