LinqDataSource.Inserting Gebeurtenis
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vindt plaats vóór een invoegbewerking.
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)
Gebeurtenistype
Voorbeelden
In het volgende voorbeeld ziet u een gebeurtenis-handler voor de Inserting gebeurtenis die gegevens wijzigt vóór de invoegbewerking. Het object van de eigenschap wordt omgezet in een type met de NewObject naam Product. De DateModified eigenschap van het Product object is ingesteld op de huidige datum en tijd.
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
In het volgende voorbeeld ziet u een gebeurtenis-handler voor de Inserting gebeurtenis die validatieuitzonderingen ophaalt.
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;
}
}
In het vorige voorbeeld worden validatie-uitzonderingen opgehaald. Er kan een uitzondering worden gegenereerd als een waarde niet overeenkomt met het type eigenschap. Het kan ook worden gegenereerd door een aangepaste controle, zoals de controle in het volgende voorbeeld. De OnAgeChanging methode controleert of het getal voor de Age eigenschap niet negatief is.
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
Opmerkingen
Inserting De gebeurtenis afhandelen om het object te valideren dat moet worden ingevoegd, om gegevensvalidatiefouten uit de gegevensklasse te onderzoeken, een waarde te wijzigen vóór de invoegbewerking of om de invoegbewerking te annuleren. Het LinqDataSourceInsertEventArgs object dat is doorgegeven aan gebeurtenis-handlers voor deze gebeurtenis bevat het nieuwe object dat in de gegevensbron moet worden ingevoegd.
Als er tijdens de invoegbewerking een validatiefout optreedt, bevat het LinqDataSourceInsertEventArgs object de validatieuitzondering die door de gegevensklasse wordt gegenereerd. Er treedt een validatiefout op als een waarde die moet worden ingevoegd niet overeenkomt met het type eigenschap in de gegevensklasse of als deze geen aangepaste validatiecontrole doorgeeft. In een gebeurtenis-handler voor de Inserting gebeurtenis kunt u de validatie-uitzonderingen ophalen en de juiste actie ondernemen.
Als er een uitzondering wordt gegenereerd in een gebeurtenis-handler voor de Inserting gebeurtenis, moet u de uitzondering in die gebeurtenis-handler afhandelen. De uitzondering wordt niet doorgegeven aan een gebeurtenis-handler voor de Inserted gebeurtenis (via de Exception eigenschap van het LinqDataSourceStatusEventArgs object). De Exception eigenschap bevat alleen de uitzonderingen die worden gegenereerd na de Inserting gebeurtenis.