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 例外狀況。

適用於