LinqDataSource.Updating 이벤트

정의

업데이트 작업 전에 발생합니다.

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) 

이벤트 유형

예제

다음 예제에서는 이벤트 처리기는 Updating 이벤트입니다. 코드는 속성과 NewObject 속성의 OriginalObject 속성을 비교하여 값이 변경되었는지 확인합니다. 값이 변경된 경우 속성 값이 NewObject 로 설정 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

다음 예제에서는 유효성 검사 예외를 Updating 검색하는 이벤트에 대한 이벤트 처리기를 보여 줍니다.

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

이전 예제에서는 유효성 검사 예외를 검색합니다. 값이 속성의 형식과 일치하지 않으면 예외가 throw될 수 있습니다. 다음 예제와 같은 사용자 지정된 검사 throw될 수도 있습니다. 메서드는 OnAgeChanging 속성의 숫자가 음수가 Age 아닌지 확인합니다.

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  

설명

Updating 업데이트할 개체의 유효성을 검사하거나, 데이터 클래스의 데이터 유효성 검사 오류를 검사하거나, 업데이트 작업 전에 값을 변경하거나, 업데이트 작업을 취소하는 이벤트를 처리합니다. LinqDataSourceUpdateEventArgs 이벤트 처리기에 전달되는 개체에는 원래 개체와 업데이트된 개체가 모두 포함됩니다.

업데이트 작업 LinqDataSourceInsertEventArgs 중에 유효성 검사 오류가 발생하면 개체에는 데이터 클래스에서 throw되는 유효성 검사 예외가 포함됩니다. 업데이트할 값이 데이터 클래스의 속성 형식과 일치하지 않거나 사용자 지정 유효성 검사 검사 전달하지 않으면 유효성 검사 오류가 발생합니다. 이벤트에 대한 Updating 이벤트 처리기에서 유효성 검사 예외를 검색하고 적절한 조치를 취할 수 있습니다.

이벤트에 대한 이벤트 처리기에서 예외가 Updating throw되는 경우 해당 이벤트 처리기에서 예외를 처리해야 합니다. 예외는 이벤트에 대한 Updated 이벤트 처리기에 전달되지 않습니다(개체의 LinqDataSourceStatusEventArgs 속성을 통해Exception). 속성에는 Exception 이벤트 후에 Updating throw되는 예외만 포함됩니다.

적용 대상