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 свойства, чтобы узнать, изменилось ли значение. Если значение изменилось, для свойства задано trueзначение NewObject .
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 события, необходимо обработать исключение в обработчике событий. Исключение не будет передано обработчику событий для Updated события (через Exception свойство LinqDataSourceStatusEventArgs объекта). Свойство Exception содержит только исключения, которые возникают после Updating события.