Die NewValues ​​und OldValues ​​von GridView sind im OnRowUpdating-Ereignis leer

8

Ich habe die GridView unten. Ich bin an eine benutzerdefinierte Datenquelle im Code gebunden. Es kommt gut in das "OnRowUpdating" -Ereignis, aber es gibt keine NewValues ​​oder OldValues. Irgendwelche Vorschläge, wie ich diese Werte bekommen kann?

%Vor%     
Abe Miessler 12.03.2010, 01:12
quelle

5 Antworten

4
  

Was das GridView-Steuerelement betrifft   RowUpdating Event Problem, es ist die   erwartetes Verhalten, wenn wir es tun   GridView (oder anderes nicht zuordnen)   ASP.NET 2.0 datengebundene Steuerung) mit   DataSource-Steuerelement wird es nicht   automatisch abfragen und füllen Sie die   Parameter Sammlung der   Aktualisieren / Löschen / ... Ereignisse. In solch   Fälle müssen wir manuell extrahieren   Feldwerte aus der Vorlage   Kontrolle.

Das sagt ein Microsoft-Mitarbeiter in hier .

In diesem Fall können Sie das mit ExtractValuesFromCell Methode, um die NewValues-Sammlung selbst zu erstellen.

BEARBEITEN:

Ich habe ein Stück Code in den Kommentaren von dieses Blog:

%Vor%

Havent hat es getestet, scheint aber das Problem zu lösen, lassen Sie es mich wissen.

    
Tony Santos 12.03.2010, 01:42
quelle
5

Ich bin mir nicht sicher, ob das helfen würde ... aber das ist, was ich in msdn Website

  

Die Auflistungen Keys, OldValues ​​und NewValues ​​werden nur dann automatisch gefüllt, wenn das GridView-Steuerelement mithilfe der DataSourceID-Eigenschaft an Daten gebunden ist.

    
hallie 12.03.2010 01:28
quelle
1

Ich habe die Datenbindung in meinem Page_Load-Ereignis durchgeführt, und als ich auf "Update" geklickt habe, war das PostBack fertig, und das Page_Load-Ereignis wurde ausgelöst. GridView wurde wieder mit den alten Werten gefüllt, daher konnte ich im myGrid.RowUpdating-Ereignis keine neuen Werte abrufen. Wenn das hilft

    
tmjam 07.12.2011 22:42
quelle
1

Binden Sie den Page PreRender Event-Handler wie folgt ein:

%Vor%

Hinweis: PreRender findet nach dem Ereignis RowUpdating statt.

    
show 17.04.2013 08:51
quelle
0

Sie müssen das IsPostback im Formular laden überprüfen. Wenn das Update der Gridview das Postback durchgeführt hat, wurde es zuerst mit den alten Werten aktualisiert. Verwenden Sie IsPostback, um dies zu verhindern:

%Vor%

Auf diese Weise werden die "neuen" Gridview-Werte nicht überschrieben

    
Stephen B Craver 12.02.2012 16:35
quelle

Tags und Links