Condividi tramite


LinqDataSource.Updating Evento

Definizione

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 .

Si applica a