LinqDataSource.Updating Händelse
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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 .