LinqDataSource.Updating Händelse

Definition

Inträffar före en uppdateringsåtgärd.

public:
 event EventHandler<System::Web::UI::WebControls::LinqDataSourceUpdateEventArgs ^> ^ Updating;
public event EventHandler<System.Web.UI.WebControls.LinqDataSourceUpdateEventArgs> Updating;
member this.Updating : EventHandler<System.Web.UI.WebControls.LinqDataSourceUpdateEventArgs> 
Public Custom Event Updating As EventHandler(Of LinqDataSourceUpdateEventArgs) 

Händelsetyp

Exempel

I följande exempel visas en händelsehanterare för Updating händelsen. Koden jämför egenskaper från OriginalObject egenskapen och egenskapen NewObject för att se om ett värde har ändrats. Om värdet har ändrats anges värdet för NewObject egenskapen till true.

protected void LinqDataSource_Updating(object sender, LinqDataSourceUpdateEventArgs e)
{
    Product originalProduct = (Product)e.OriginalObject;
    Product newProduct = (Product)e.NewObject;

    if (originalProduct.Category != newProduct.Category)
    {
        newProduct.CategoryChanged = true;
    }
}
Protected Sub LinqDataSource_Updating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LinqDataSourceUpdateEventArgs)
    Dim originalProduct As Product
    Dim newProduct As Product

    originalProduct = CType(e.OriginalObject, Product)
    newProduct = CType(e.NewObject, Product)

    If (originalProduct.Category <> newProduct.Category) Then
        newProduct.CategoryChanged = True
    End If
End Sub

I följande exempel visas en händelsehanterare för händelsen Updating som hämtar valideringsfel.

Protected Sub LinqDataSource_Updating(ByVal sender As Object, _
        ByVal e As LinqDataSourceUpdateEventArgs)
    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
protected void LinqDataSource_Updating(object sender,
        LinqDataSourceUpdateEventArgs 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;
    }
}

I föregående exempel hämtas verifieringsfel. Ett undantag kan utlöses om ett värde inte matchar egenskapens typ. Det kan också genereras från en anpassad kontroll, till exempel den i följande exempel. Metoden OnAgeChanging kontrollerar att talet för Age egenskapen inte är negativt.

partial void  OnAgeChanging(int? value)
{
    if (value < 0)
    {
        throw new Exception("Age cannot be a negative number.");
    }
}
Private Sub OnAgeChanging(ByVal value As System.Nullable(Of Integer))
    If (value < 0) Then
        Throw New Exception("Age cannot be a negative number.")
    End If
End Sub

Kommentarer

Updating Hantera händelsen för att verifiera objektet som ska uppdateras, för att undersöka datavalideringsfel från dataklassen, ändra ett värde före uppdateringsåtgärden eller avbryta uppdateringsåtgärden. Objektet LinqDataSourceUpdateEventArgs som skickas till händelsehanterare innehåller både det ursprungliga objektet och det uppdaterade objektet.

Om ett valideringsfel inträffar under uppdateringsåtgärden LinqDataSourceInsertEventArgs innehåller objektet de verifieringsundanstag som genereras av dataklassen. Ett verifieringsfel uppstår om ett värde som ska uppdateras inte matchar egenskapens typ i dataklassen, eller om det inte klarar en anpassad valideringskontroll. I en händelsehanterare för Updating händelsen kan du hämta verifieringsfelen och vidta lämpliga åtgärder.

Om ett undantag utlöses i en händelsehanterare för Updating händelsen måste du hantera undantaget i händelsehanteraren. Undantaget skickas inte till en händelsehanterare för Updated händelsen (via Exception objektets LinqDataSourceStatusEventArgs egenskap). Egenskapen Exception innehåller endast de undantag som utlöses efter händelsen Updating .

Gäller för