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 。 该代码比较 OriginalObject 属性和 属性中的属性, NewObject 以查看值是否已更改。 如果值已更改,则 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;  
    }  
}  

上一个示例检索验证异常。 如果值与 属性的类型不匹配,可能会引发异常。 也可能从自定义检查(如以下示例中的)引发。 方法 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 对象包含数据类引发的验证异常。 如果要更新的值与数据类中的 属性类型不匹配,或者未通过自定义验证检查,则会发生验证错误。 在 事件的事件处理程序中 Updating ,可以检索验证异常并采取适当的操作。

如果在事件的事件处理程序 Updating 中引发异常,则必须在该事件处理程序中处理异常。 异常不会通过 对象的 属性) 传递给事件 (ExceptionLinqDataSourceStatusEventArgs事件处理程序Updated。 属性 Exception 仅包含事件后引发的 Updating 异常。

适用于