LinqDataSource.Updating Evento

Definición

Tiene lugar antes de una operación de actualización.

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 de evento

Ejemplos

En el ejemplo siguiente se muestra un controlador de eventos para el Updating evento. El código compara las propiedades de la OriginalObject propiedad y la NewObject propiedad para ver si un valor ha cambiado. Si el valor ha cambiado, un valor de la NewObject propiedad se establece en 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

En el ejemplo siguiente se muestra un controlador de eventos para el Updating evento que recupera excepciones de validación.

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;  
    }  
}  

En el ejemplo anterior se recuperan excepciones de validación. Se podría producir una excepción si un valor no coincide con el tipo de la propiedad . También se puede producir desde una comprobación personalizada, como la del ejemplo siguiente. El OnAgeChanging método comprueba que el número para el Age propiedad no es negativa.

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  

Comentarios

Controle el Updating evento para validar el objeto que se va a actualizar, para examinar los errores de validación de datos de la clase de datos, para cambiar un valor antes de la operación de actualización o para cancelar la operación de actualización. El LinqDataSourceUpdateEventArgs objeto que se pasa a los controladores de eventos contiene el objeto original y el objeto actualizado.

Si se produce un error de validación durante la operación de actualización, el LinqDataSourceInsertEventArgs objeto contiene las excepciones de validación producidas por la clase de datos. Se produce un error de validación si un valor que se va a actualizar no coincide con el tipo de la propiedad en la clase de datos o si no pasa una comprobación de validación personalizada. En un controlador de eventos para el Updating evento, puede recuperar las excepciones de validación y realizar las acciones adecuadas.

Si se produce una excepción en un controlador de eventos para el Updating evento, debe controlar la excepción en ese controlador de eventos. La excepción no se pasará a un controlador de eventos para el Updated evento (a través de la Exception propiedad del LinqDataSourceStatusEventArgs objeto ). La Exception propiedad contiene solo las excepciones que se producen después del Updating evento.

Se aplica a