Aracılığıyla paylaş


LinqDataSource.Updating Olay

Tanım

Güncelleştirme işleminden önce gerçekleşir.

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) 

Olay Türü

Örnekler

Aşağıdaki örnekte olay için bir olay işleyicisi gösterilmektedir Updating . Kod, bir değerin OriginalObject değişip değişmediğini görmek için özelliği ve NewObject özelliğindeki özellikleri karşılaştırır. Değer değiştiyse, özelliğinin NewObject değeri olarak trueayarlanır.

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

Aşağıdaki örnekte doğrulama özel durumlarını alan olay için Updating bir olay işleyicisi gösterilmektedir.

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

Önceki örnek doğrulama özel durumlarını alır. Bir değer özelliğin türüyle eşleşmiyorsa bir özel durum oluşturulabilir. Ayrıca aşağıdaki örnekteki gibi özelleştirilmiş bir denetimden de oluşturulabilir. yöntemi, OnAgeChanging özelliğin sayısının Age negatif olmadığını denetler.

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  

Açıklamalar

Updating Güncelleştirilecek nesneyi doğrulamak, veri sınıfından veri doğrulama hatalarını incelemek, güncelleştirme işleminden önceki bir değeri değiştirmek veya güncelleştirme işlemini iptal etmek için olayı işleyin. Olay LinqDataSourceUpdateEventArgs işleyicilerine geçirilen nesne hem özgün nesneyi hem de güncelleştirilmiş nesneyi içerir.

Güncelleştirme işlemi sırasında bir doğrulama hatası oluşursa, LinqDataSourceInsertEventArgs nesne veri sınıfı tarafından oluşturulan doğrulama özel durumlarını içerir. Güncelleştirilecek bir değer veri sınıfındaki özelliğin türüyle eşleşmiyorsa veya özel doğrulama denetimi geçmezse doğrulama hatası oluşur. Olayın olay işleyicisinde Updating doğrulama özel durumlarını alabilir ve uygun eylemi gerçekleştirebilirsiniz.

Olay için Updating bir olay işleyicisinde özel durum oluşturulursa, bu olay işleyicisinde özel durumu işlemeniz gerekir. Özel durum, olay için bir olay işleyicisine Updated geçirilmeyecektir (nesnenin ExceptionLinqDataSourceStatusEventArgs özelliği aracılığıyla). Exception özelliği yalnızca olaydan sonra Updating oluşan özel durumları içerir.

Şunlara uygulanır