2009-12-17 5 views
0

J'ai un gridview généré dynamiquement sur la page avec le tri fourni dans le code derrière. Maintenant, je passe de la page A à la page B en utilisant un lien, cela fonctionne également très bien. Mais quand j'appuie sur le bouton de retour du navigateur et revenir à ma page A et encore essayer de trier ... la page A émet une exception ...Bouton de retour du navigateur créant un problème

est-il un moyen de programmer ce bouton de retour comme nous programmons un bouton normalement ..

Merci

`Vous ne trouvez pas la colonne nommachine. Description: Une exception non gérée s'est produite lors de l'exécution de la requête Web en cours. Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Exception Details: System.IndexOutOfRangeException: Cannot find column machinename. 

Source Error: 

Line 519:     
Line 520:    //Sort the data. 
Line 521:    dt.DefaultView.Sort = e.SortExpression + " " +  GetSortDirection(e.SortExpression); 
Line 522:    GridView1.DataSource = Session["TaskTable"]; 
Line 523:    GridView1.DataBind();` 
+1

pouvez-vous nous indiquer le type d'erreur que vous recevez? peut-être une trace de pile et du code? – user10635

+1

Généralement, en appuyant sur le bouton de retour affichera une copie en cache d'une page (puisque le navigateur met généralement en cache). Faire un tri devrait fonctionner si vous conservez vos données liées dans viewstate. En outre, vous pouvez utiliser fiddler et examiner la demande avant et après le bouton de retour pour voir qu'ils sont les mêmes. –

Répondre

0

Page A est probablement mises en cache dans votre navigateur. Vous obtenez cette version en cache lorsque vous cliquez en arrière. Essayez de forcer le navigateur à ne pas mettre en cache la page dans le code derrière (de la page A) avec:

Response.Cache.SetCacheability(HttpCacheability.NoCache); 
Response.Cache.SetExpires(DateTime.Now - new TimeSpan(1, 0, 0)); 
Response.Cache.SetLastModified(DateTime.Now); 
Response.Cache.SetAllowResponseInBrowserHistory(false); 
Questions connexes