LinqDataSourceUpdateEventArgs 類別

定義

提供 Updating 事件的資料。

public ref class LinqDataSourceUpdateEventArgs : System::ComponentModel::CancelEventArgs
public class LinqDataSourceUpdateEventArgs : System.ComponentModel.CancelEventArgs
type LinqDataSourceUpdateEventArgs = class
    inherit CancelEventArgs
Public Class LinqDataSourceUpdateEventArgs
Inherits CancelEventArgs
繼承
LinqDataSourceUpdateEventArgs

範例

下列範例顯示 事件的事件處理常式 Updating 。 此範例示範如何比較屬性和 NewObject 屬性中的屬性 OriginalObject ,以判斷屬性中的 Category 值是否已變更。 如果是,屬性 CategoryChanged 中的 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 。 它會使用 Label 控制項顯示任何驗證例外狀況訊息。

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

備註

物件 LinqDataSourceUpdateEventArgs 會傳遞至事件的任何事件處理常式 Updating 。 您可以使用 LinqDataSourceUpdateEventArgs 物件在資料來源中執行更新作業之前檢查資料。 然後,您可以驗證資料、檢查資料類別擲回的驗證例外狀況,或在更新之前變更值。 您也可以取消更新作業。

物件 OriginalObject 包含原本從資料來源擷取的資料。 物件 NewObject 包含將在更新作業期間儲存在資料來源中的資料。

如果表示資料來源的物件在更新資料之前擲回驗證例外狀況,則 Exception 屬性會包含 類別的 LinqDataSourceValidationException 實例。 您可以透過 屬性擷取所有驗證例外狀況 InnerExceptions 。 如果未擲回任何驗證例外狀況,屬性 Exception 會包含 null 。 如果您處理驗證例外狀況,而且不想重新擲回例外狀況,請將 ExceptionHandled 屬性設定為 true

根據預設, LinqDataSource 控制項會將資料來源的原始值儲存在網頁上的檢視狀態,但屬性 ColumnAttribute 標示為 UpdateCheck.Never 的那些值除外。 LINQ to SQL在更新資料之前自動檢查資料的完整性。 其作法是比較資料來源中的目前值與儲存在檢視狀態中的原始值。 如果資料來源中的值已變更,LINQ to SQL就會引發例外狀況。 您可以建立 事件的處理常式 Updating 來執行其他資料驗證。

建構函式

LinqDataSourceUpdateEventArgs(LinqDataSourceValidationException)

使用指定的例外狀況,初始化 LinqDataSourceUpdateEventArgs 類別的新執行個體。

LinqDataSourceUpdateEventArgs(Object, Object)

初始化 LinqDataSourceUpdateEventArgs 類別的新執行個體。

屬性

Cancel

取得或設定值,這個值表示是否應該取消事件。

(繼承來源 CancelEventArgs)
Exception

取得更新作業之前的資料驗證期間所擲回的例外狀況。

ExceptionHandled

取得或設定值,這個值表示是否處理了例外狀況以及是否不應再度擲回此例外狀況。

NewObject

取得物件,該物件包含會儲存在資料來源中的值。

OriginalObject

取得物件,這個物件包含原先從資料來源擷取的資料。

方法

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

適用於

另請參閱