LinqDataSource.Updating 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 updatebewerking.
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)
Gebeurtenistype
Voorbeelden
In het volgende voorbeeld ziet u een gebeurtenis-handler voor de Updating gebeurtenis. De code vergelijkt eigenschappen van de OriginalObject eigenschap en de NewObject eigenschap om te zien of een waarde is gewijzigd. Als de waarde is gewijzigd, wordt een waarde van de NewObject eigenschap ingesteld op 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
In het volgende voorbeeld ziet u een gebeurtenis-handler voor de Updating gebeurtenis die validatieuitzonderingen ophaalt.
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;
}
}
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
Updating De gebeurtenis afhandelen om het object te valideren dat moet worden bijgewerkt, om gegevensvalidatiefouten uit de gegevensklasse te onderzoeken, een waarde te wijzigen vóór de updatebewerking of om de updatebewerking te annuleren. Het LinqDataSourceUpdateEventArgs object dat wordt doorgegeven aan gebeurtenis-handlers bevat zowel het oorspronkelijke object als het bijgewerkte object.
Als er tijdens de updatebewerking een validatiefout optreedt, bevat het LinqDataSourceInsertEventArgs object de validatieuitzondering die door de gegevensklasse worden gegenereerd. Er treedt een validatiefout op als een waarde die moet worden bijgewerkt niet overeenkomt met het type eigenschap in de gegevensklasse of als deze geen aangepaste validatiecontrole doorgeeft. In een gebeurtenis-handler voor de Updating gebeurtenis kunt u de validatie-uitzonderingen ophalen en de juiste actie ondernemen.
Als er een uitzondering wordt gegenereerd in een gebeurtenis-handler voor de Updating gebeurtenis, moet u de uitzondering in die gebeurtenis-handler afhandelen. De uitzondering wordt niet doorgegeven aan een gebeurtenis-handler voor de Updated gebeurtenis (via de Exception eigenschap van het LinqDataSourceStatusEventArgs object). De Exception eigenschap bevat alleen de uitzonderingen die worden gegenereerd na de Updating gebeurtenis.