LinqDataSourceUpdateEventArgs 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供 Updating 事件的資料。
public ref class LinqDataSourceUpdateEventArgs : System::ComponentModel::CancelEventArgs
public class LinqDataSourceUpdateEventArgs : System.ComponentModel.CancelEventArgs
type LinqDataSourceUpdateEventArgs = class
inherit CancelEventArgs
Public Class LinqDataSourceUpdateEventArgs
Inherits CancelEventArgs
- 繼承
範例
下列範例顯示 事件的事件處理常式 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 來執行其他資料驗證。
建構函式
屬性
Cancel |
取得或設定值,這個值表示是否應該取消事件。 (繼承來源 CancelEventArgs) |
Exception |
取得更新作業之前的資料驗證期間所擲回的例外狀況。 |
ExceptionHandled |
取得或設定值,這個值表示是否處理了例外狀況以及是否不應再度擲回此例外狀況。 |
NewObject |
取得物件,該物件包含會儲存在資料來源中的值。 |
OriginalObject |
取得物件,這個物件包含原先從資料來源擷取的資料。 |
方法
Equals(Object) |
判斷指定的物件是否等於目前的物件。 (繼承來源 Object) |
GetHashCode() |
做為預設雜湊函式。 (繼承來源 Object) |
GetType() |
取得目前執行個體的 Type。 (繼承來源 Object) |
MemberwiseClone() |
建立目前 Object 的淺層複製。 (繼承來源 Object) |
ToString() |
傳回代表目前物件的字串。 (繼承來源 Object) |