2009-02-16 9 views
6

Mein Verständnis der Reihenfolge der Seitenveranstaltungen ist:ASP.NET-Seite Ereignisse - Schaltfläche klicken Ereignis kommt nach Gridview binden

Seite: Last

Steuerung: DataBind (für eine Gridview oder was auch immer)

Steuerung: Last

Steuerung: Clicked (für einen Button)

Seite: PreRender

Steuerung: PreRender

(Es gibt viele andere - aber diese sind diejenigen, die mich interessieren)

Wichtig ist hier zu bemerken ist, dass das Click-Ereignis der Schaltfläche kommt nach Das Bindungsereignis der Gridview. Wenn die Schaltfläche eine Änderung an den Daten bewirkt, zeigt das GridView die alten Daten an. Ich könnte die Kontrolle im PreRender-Event neu binden, aber das scheint total hässlich.

Dies muss ein sehr häufiges Muster sein (eine Schaltfläche, die Daten aktualisiert). Wie stelle ich dies zusammen, so dass das GridView an die Daten nach bindet der Button Klick ändert es?

Antwort

2

Die Antwort war im Ereignis Button Click, nachdem die Daten geändert wurden, rufen Sie DataBind() auf der Seite auf, um die GridView (und alles andere, was sie benötigt) zu binden. Ich wusste nicht, dass du das tun kannst.

Danke Ocdecio & Mufasa - Ich würde Ihre Antworten als hilfreich markieren, aber ich habe noch keine rep.

+0

Ich habe auch noch keine rep, nicht im Vergleich zu ocdecio sowieso! :) –

0

Der einzige Grund, warum das Button-Klick-Ereignis nach der GridView-Bindung kommt, liegt daran, dass Sie Ihre Seite dafür programmiert haben. Ich sehe kein Problem beim Binden des Steuerelements im PreRender-Ereignis. Tatsächlich ist dies die einzige Möglichkeit, nach einem Steuerelementereignis (z. B. Button onclick) Maßnahmen zu ergreifen.

1

ASP.NET tut standardmäßig viel Bindung und Neubindung. Das erneute Binden nach einem Klick ist normal.