LinqDataSource.Updating Kejadian
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Terjadi sebelum operasi pembaruan.
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)
Jenis Acara
Contoh
Contoh berikut menunjukkan penanganan aktivitas untuk peristiwa tersebut Updating . Kode membandingkan OriginalObject properti dari properti dan NewObject properti untuk melihat apakah nilai telah berubah. Jika nilai telah berubah, nilai NewObject properti diatur ke 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
Contoh berikut menunjukkan penanganan aktivitas untuk Updating peristiwa yang mengambil pengecualian validasi.
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;
}
}
Contoh sebelumnya mengambil pengecualian validasi. Pengecualian mungkin dilemparkan jika nilai tidak cocok dengan jenis properti. Ini mungkin juga dilemparkan dari pemeriksaan yang disesuaikan seperti yang ada dalam contoh berikut. Metode OnAgeChanging
memeriksa bahwa angka untuk Age
properti tidak negatif.
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
Keterangan
Updating Tangani peristiwa untuk memvalidasi objek yang akan diperbarui, untuk memeriksa kesalahan validasi data dari kelas data, untuk mengubah nilai sebelum operasi pembaruan, atau untuk membatalkan operasi pembaruan. Objek LinqDataSourceUpdateEventArgs yang diteruskan ke penanganan aktivitas berisi objek asli dan objek yang diperbarui.
Jika kesalahan validasi terjadi selama operasi pembaruan, LinqDataSourceInsertEventArgs objek berisi pengecualian validasi yang dilemparkan oleh kelas data. Kesalahan validasi terjadi jika nilai yang akan diperbarui tidak cocok dengan jenis properti di kelas data, atau jika tidak lulus pemeriksaan validasi kustom. Dalam penanganan aktivitas untuk peristiwa tersebut Updating , Anda dapat mengambil pengecualian validasi dan mengambil tindakan yang sesuai.
Jika pengecualian dilemparkan dalam penanganan aktivitas untuk peristiwa tersebut Updating , Anda harus menangani pengecualian di penanganan aktivitas tersebut. Pengecualian tidak akan diteruskan ke penanganan aktivitas untuk Updated peristiwa (melalui Exception properti LinqDataSourceStatusEventArgs objek ). Properti Exception hanya berisi pengecualian yang dilemparkan setelah Updating peristiwa.