2010-02-26 34 views
5

Microsoft'un bir gün boyunca beni beklediği şekilde çalışmak için FormView'lerle uğraşmakta zorlanıyorum ve bir sürü harika şeyi anladım.FormView Eklendikten sonra FormView'ın kullanıcının girilen Değerlerini temizlemesini nasıl engellerim?

ObjectDataSource.Inserting Olay İşleyicisi'nde e.Exception ve e.ReturnValue öğelerini yakalayabilirim ve hatta, Object.Deliştirme (ObjectDataSource.ObjectDisposing) nesnesindeki Object'in diğer özelliklerini e.ObjectInstance ve ... FormView'ın Ekleme İşleyicisi'nin ObjectDisposing Handler'dan sonra çalışacağını öğrendim. Bu yüzden bir sorun varsa, buna tepki vermek için hala zamanım var ve e.KeepInInsertMode'u FormView'de true değerine getirdim.

Sorunum, kullanıcı tarafından Ekle formuna girilen değerlerin ne olursa olsun temizlendiği anlaşılıyor.

Bu nedenle, Ekleme Yöntemi tetiklendikten sonra bir Form Görünümü'nün nasıl temizlenmesini nasıl önleyebilirim?

(ASP.NET + VB kullanarak)

yüzden ben ... gerçekten ben gizli iş mantığı şeyler dışarı kesmek için bunu değiştirmek için çok iyi ve olurdu yapacağım burada kodumu gönderme sanmıyorum şimdilik şimdilik atlayın.

düzenleme: (kimse sorununa GERÇEK çözüm bulur durumunda) geçici ve kuşkusuz korkunç cludgy çözüm bulduk

. Ben kontroller o böyle bir şey var o

Dim eInsertArgs As FormViewInsertedEventArgs 

Ve kontrollerin her biri üzerinde

If boolInsertErrorOccurred = False Then 
     e.KeepInInsertMode = True 
     eInsertArgs = e 
    Else 
     eInsertArgs = Nothing 
    End If 

Sonra benim ItemInserted işleyicisinde aşağıdakileri yapın:

ben gibi bir sayfa değişken tanımlanmış olması veri bağlama olayı:

If IsNothing(eInsertArgs) = False Then 
     Dim _sender As TextBox = sender 
     _sender.Text = eInsertArgs.Values("_FieldName") 
    End If 
Bunun etkisi, değerleri ayarlamamdır. Gönderilen değerlere GERİ DÖN ASP.NET SONRASI, FormView'i varsayılan (boş) Şablona bağlar.

Lütfen daha az korkunç bir çözüm bulmama yardım edin. :)

+0

Eğer cevap olarak çözümü ile Düzenlemenizi sunmalıdır. –

cevap

1

FormView denetiminden devralan kendi sunucu denetiminizi oluşturmanız gerekir.

Public Class MyFormView 
    Inherits FormView 

Protected Overrides Sub OnDataSourceViewChanged(ByVal sender As Object, 
ByVal e As EventArgs) 
    If (MyBase.CurrentMode = FormViewMode.Insert) Then 
      MyBase.RequiresDataBinding = False 
    Else 
      MyBase.OnDataSourceViewChanged(sender, e) 
    End If 
End Sub 

End Class 

bu sayfaya göz atın: http://www.dotnetmonster.com/Uwe/Forum.aspx/asp-net/76885/FormView-Insert

İlgili konular