Partilhar via


LinqDataSource.Updating Evento

Definição

Ocorre antes de uma operação de atualização.

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

Exemplos

O exemplo a seguir mostra um manipulador de eventos para o Updating evento. O código compara as propriedades da OriginalObject propriedade e da NewObject propriedade para ver se um valor foi alterado. Se o valor tiver sido alterado, um valor da NewObject propriedade será definido como 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

O exemplo a seguir mostra um manipulador de eventos para o Updating evento que recupera exceções de validação.

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

O exemplo anterior recupera exceções de validação. Uma exceção poderá ser gerada se um valor não corresponder ao tipo da propriedade. Ele também pode ser gerado de uma marcar personalizada, como a do exemplo a seguir. O OnAgeChanging método verifica se o número da Age propriedade não é 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  

Comentários

Manipule o Updating evento para validar o objeto a ser atualizado, examinar erros de validação de dados da classe de dados, alterar um valor antes da operação de atualização ou cancelar a operação de atualização. O LinqDataSourceUpdateEventArgs objeto que é passado para manipuladores de eventos contém o objeto original e o objeto atualizado.

Se ocorrer um erro de validação durante a operação de atualização, o LinqDataSourceInsertEventArgs objeto conterá as exceções de validação geradas pela classe de dados. Um erro de validação ocorrerá se um valor a ser atualizado não corresponder ao tipo da propriedade na classe de dados ou se ele não passar por uma validação personalizada marcar. Em um manipulador de eventos para o Updating evento, você pode recuperar as exceções de validação e tomar as medidas apropriadas.

Se uma exceção for gerada em um manipulador de eventos para o Updating evento, você deverá manipular a exceção nesse manipulador de eventos. A exceção não será passada para um manipulador de eventos para o Updated evento (por meio da Exception propriedade do LinqDataSourceStatusEventArgs objeto). A Exception propriedade contém apenas as exceções geradas após o Updating evento.

Aplica-se a