LinqDataSource.Inserting 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 innan en infogningsåtgärd.
public:
event EventHandler<System::Web::UI::WebControls::LinqDataSourceInsertEventArgs ^> ^ Inserting;
public event EventHandler<System.Web.UI.WebControls.LinqDataSourceInsertEventArgs> Inserting;
member this.Inserting : EventHandler<System.Web.UI.WebControls.LinqDataSourceInsertEventArgs>
Public Custom Event Inserting As EventHandler(Of LinqDataSourceInsertEventArgs)
Händelsetyp
Exempel
I följande exempel visas en händelsehanterare för händelsen Inserting som ändrar data före infogningsåtgärden. Objektet från egenskapen är gjutet NewObject till en typ med namnet Product. Objektets DateModifiedProduct egenskap är inställd på aktuellt datum och tid.
protected void LinqDataSource_Inserting(object sender, LinqDataSourceInsertEventArgs e)
{
Product product = (Product)e.NewObject;
product.DateModified = DateTime.Now;
}
Protected Sub LinqDataSource_Inserting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LinqDataSourceInsertEventArgs)
Dim product As Product
product = CType(e.NewObject, Product)
product.DateModified = DateTime.Now
End Sub
I följande exempel visas en händelsehanterare för händelsen Inserting som hämtar valideringsfel.
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
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;
}
}
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
Inserting Hantera händelsen för att verifiera objektet som ska infogas, för att undersöka dataverifieringsfel från dataklassen, ändra ett värde före infogningsåtgärden eller avbryta infogningsåtgärden. Objektet LinqDataSourceInsertEventArgs som skickas till händelsehanterare för den här händelsen innehåller det nya objektet som ska infogas i datakällan.
Om ett verifieringsfel inträffar under infogningsåtgärden LinqDataSourceInsertEventArgs innehåller objektet de verifieringsundanstag som genereras av dataklassen. Ett valideringsfel inträffar om ett värde som ska infogas inte matchar egenskapens typ i dataklassen, eller om det inte klarar en anpassad verifieringskontroll. I en händelsehanterare för Inserting händelsen kan du hämta verifieringsfelen och vidta lämpliga åtgärder.
Om ett undantag utlöses i en händelsehanterare för Inserting händelsen måste du hantera undantaget i händelsehanteraren. Undantaget skickas inte till en händelsehanterare för Inserted händelsen (via Exception objektets LinqDataSourceStatusEventArgs egenskap). Egenskapen Exception innehåller endast de undantag som utlöses efter händelsen Inserting .