Reihenfolge der Ereignisse beim Postback

19/09/2007 - 18:37 von Holger Vorberg | Report spam
Hallo zusammen,

ich habe folgendes Problem:

In eine ASP.NET Formular habe ich zwei Grids.
Die Daten für die Grids kommen aus der selben Tabelle, werden aber mit
jeweils unterschiedlichen Parametern abgefragt, wodurch sich dann eben die
Daten für das eine und für das andere Grid ergeben.
In dem Formular kann der Benutzer nun mittels eines Buttons veranlassen,
dass z.B. für einen Datensatz aus Grid1 ein Feldinhalt so veràndert wird,
dass er bei der nàchsten Abfrage eigentlich in dem anderen Grid erscheinen
müsste. Der Button löst ja ein Postback aus und der Feldinhalt wird auch
entsprechend geschrieben, was ich leicht im SQL Server Management Studio
kontrollieren kann. Zum schreiben der Daten instanziiere ich in dem
Buttonclick einen Tableadapter der über die entsprechende Methode verfügt.
Allerdings haben die Grids nach dem Postback den gleichen Inhalt wie vorher,
obwohl der Tabelleninhalt etwas anderes sagt. Löse ich ein weiteres Postback
aus, z.B. durch einen Button der außer dem Postback nichts anderes
verursacht, dann stimmen die Inhalte.

Ich vermute, dass das Schreiben der Daten, damit also der Code in dem
Buttonclick, erst ausgeführt wird, nachdem die Datasourcen der Grids neu
geladen wurden. Kann ich das irgendwie beinflussen bzw. àndern.

Beim Click auf den Button sollen erst die Daten weggeschrieben werden und
erst danach sollen die Select Statements der DataSourcen ausgeführt werden.

Tschüß,

Holger Vorberg
MS Visual FoxPro MVP
dFPUG Regionalleiter Bielefeld
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
19/09/2007 - 18:53 | Warnen spam
Hallo Holger,

"Holger Vorberg" schrieb:

Ich vermute, dass das Schreiben der Daten, damit also der Code in dem
Buttonclick, erst ausgeführt wird, nachdem die Datasourcen der Grids neu
geladen wurden. Kann ich das irgendwie beinflussen bzw. àndern.



Sub Page_Load( ... ) Handles Me.Load

...
<GridView>.DataSource = ...

If Not Page.IsPostBack Then
<GridView>.DataBind()
End if

End Sub

Sub Button_Click( ... ) Handels <Button>.Click

<GridView>.DataSource = ...
<GridView>.DataBind()

End Sub

Ob der Code in Page_Load für dich passt, hàngt von verschiedenen Faktoren
ab, bspw. ob Du vor dem Button_Click Handler noch mit den Daten des Grid-
View arbeiten musst, ...

So oder so: Wenn in einem Postback EventHandler DataBind ausgeführt werden
soll, solltest Du das "normale" Binden mit If Not Page.IsPostBack ... an
anderen Stellen unterbinden.

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen