LinqDataSource.Updating Evento
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Si verifica prima di un'operazione di aggiornamento.
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)
Tipo evento
Esempio
Nell'esempio seguente viene illustrato un gestore eventi per l'evento Updating . Il codice confronta le proprietà della OriginalObject proprietà e la NewObject proprietà per verificare se un valore è stato modificato. Se il valore è stato modificato, il valore della NewObject proprietà viene impostato su 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
Nell'esempio seguente viene illustrato un gestore eventi per l'evento Updating che recupera le eccezioni di convalida.
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;
}
}
Nell'esempio precedente vengono recuperate le eccezioni di convalida. È possibile che venga generata un'eccezione se un valore non corrisponde al tipo della proprietà. Può anche essere generata da un controllo personalizzato, ad esempio quello nell'esempio seguente. Il OnAgeChanging
metodo verifica che il numero della Age
proprietà non sia negativo.
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
Commenti
Gestire l'evento Updating per convalidare l'oggetto da aggiornare, per esaminare gli errori di convalida dei dati dalla classe dati, per modificare un valore prima dell'operazione di aggiornamento o per annullare l'operazione di aggiornamento. L'oggetto LinqDataSourceUpdateEventArgs passato ai gestori eventi contiene sia l'oggetto originale che l'oggetto aggiornato.
Se si verifica un errore di convalida durante l'operazione di aggiornamento, l'oggetto LinqDataSourceInsertEventArgs contiene le eccezioni di convalida generate dalla classe dati. Un errore di convalida si verifica se un valore da aggiornare non corrisponde al tipo della proprietà nella classe dati o se non supera un controllo di convalida personalizzato. In un gestore eventi per l'evento Updating è possibile recuperare le eccezioni di convalida ed eseguire le azioni appropriate.
Se viene generata un'eccezione in un gestore eventi per l'evento Updating , è necessario gestire l'eccezione nel gestore eventi. L'eccezione non verrà passata a un gestore eventi per l'evento Updated (tramite la Exception proprietà dell'oggetto LinqDataSourceStatusEventArgs ). La Exception proprietà contiene solo le eccezioni generate dopo l'evento Updating .