LinqDataSource.Updating Evento
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Tiene lugar antes de una operación de actualización.
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)
Tipo de evento
Ejemplos
En el ejemplo siguiente se muestra un controlador de eventos para el Updating evento. El código compara las propiedades de la OriginalObject propiedad y la NewObject propiedad para ver si un valor ha cambiado. Si el valor ha cambiado, un valor de la NewObject propiedad se establece en 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
En el ejemplo siguiente se muestra un controlador de eventos para el Updating evento que recupera excepciones de validación.
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;
}
}
En el ejemplo anterior se recuperan excepciones de validación. Se podría producir una excepción si un valor no coincide con el tipo de la propiedad . También se puede producir desde una comprobación personalizada, como la del ejemplo siguiente. El OnAgeChanging
método comprueba que el número para el Age
propiedad no es negativa.
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
Comentarios
Controle el Updating evento para validar el objeto que se va a actualizar, para examinar los errores de validación de datos de la clase de datos, para cambiar un valor antes de la operación de actualización o para cancelar la operación de actualización. El LinqDataSourceUpdateEventArgs objeto que se pasa a los controladores de eventos contiene el objeto original y el objeto actualizado.
Si se produce un error de validación durante la operación de actualización, el LinqDataSourceInsertEventArgs objeto contiene las excepciones de validación producidas por la clase de datos. Se produce un error de validación si un valor que se va a actualizar no coincide con el tipo de la propiedad en la clase de datos o si no pasa una comprobación de validación personalizada. En un controlador de eventos para el Updating evento, puede recuperar las excepciones de validación y realizar las acciones adecuadas.
Si se produce una excepción en un controlador de eventos para el Updating evento, debe controlar la excepción en ese controlador de eventos. La excepción no se pasará a un controlador de eventos para el Updated evento (a través de la Exception propiedad del LinqDataSourceStatusEventArgs objeto ). La Exception propiedad contiene solo las excepciones que se producen después del Updating evento.