2009-02-16 9 views
15

Ich habe Befehlsschaltfläche in meinem asp.net Grids hinzugefügt. Nachdem Sie eine Aktion mit dieser Schaltfläche ausgeführt haben, aktualisieren wir das Raster, um die neuen Daten wiederzugeben. (Im Grunde kopiert diese Aktion die Gitterreihe).Aktualisieren Sie die Seite nach einer Postback-Aktion in asp.net

Jetzt, wenn Benutzer die Seite mit F5 aktualisieren, wird eine Warnmeldung angezeigt (um die Informationen erneut an den Server zu senden), wenn wir "retry" auswählen, wird die Aktion automatisch wiederholt.

Ich weiß, das ist ein häufiges Problem in asp.net, wie können wir das am besten handhaben?

Antwort

2

Wenn Sie glauben, dass Sie kein Postback-Paradigma benötigen, sollten Sie sich ASP.NET MVC ansehen.

1

Wenn ich gut verstanden habe, müssen Sie einfach überprüfen, ob Sie sich in einer Post-Back-Situation befinden, bevor Sie Ihr Raster füllen.
Sie Unter der Annahme, dass auf Page_Load, einfach den Betrieb mit Post-Back-Test wie folgt umgeben:

private void Page_Load(object sender, EventArgs e) 
{ 
    if(!this.IsPostBack) 
    { 
     // populate grid 
    } 
} 
1

Sie benötigen Response.redirect (Request.Url.ToString()) zu nennen;

oder man kann den Raster mit Update wickelt und nach jedem Befehl bindet die Datenquelle zu grid

2

Das Problem ist, dass asp.net Tasten FORMULARPLZ ausführen, wenn Sie eine Taste drücken. Wenn Sie die Schaltfläche durch einen Link ersetzen, sollte Ihr Problem verschwinden. Sie können auch eine Schaltfläche verwenden, die eine JavaScript-Funktion ausführt, die die Position "document.location" auf die Adresse Ihrer Seite einstellt.

1

In Ihrem <asp:Repeater> Tag setzen diese:

EnableViewState="false" 

dies Ihre Kontrolle verursacht jedesmal, wenn die Seite geladen wird, unabhängig davon, zu aktualisieren, wenn es sich um ein Postback ist oder nicht.

+0

Wie kommt niemand dieser Antwort eine Aufzählung gegeben? – slamsal

+0

Hat nicht für mich gearbeitet. – Andy

-1

zum Beispiel: Wenn Sie auf 'Button' klicken, wird das Ereignis 'button_click' abgefangen. Wenn Sie die Seite aktualisieren, führt das System das gleiche Ereignis erneut aus. don t dieses Problem in Ihrem Fall Einsatz haben,: auf Ihr Event

private void button_click(object sender, System.EventArgs e) 
{ 
    button.Enabled =false; 
    button.Enabled =true; 
} 

ist, was Sie gemeint?

+1

Das ist überhaupt nicht die Frage. –