2010-11-09 3 views
1

Je suis en train d'avoir un listview et de le lier avec des éléments récupérés de la base de données. J'ai utilisé le pager pour naviguer vers différentes pages. Mais le problème est que supposons que je suis actuellement dans la page numéro 25 et rafraîchis la page en appuyant sur F5 ou en cliquant sur le bouton d'actualisation du navigateur, il me redirigera vers le numéro de page 1. Je veux dire à la première page. Mais je veux aussi rafraîchir cela devrait être dans la page actuelle, je veux dire à la page 25. Je ne comprends pas pourquoi cela se passe. Quelqu'un peut-il me proposer une solution à ce problème?Pager refresh isuue

+0

Votre listview est-il dans un panneau de mise à jour? Si c'est le cas, il se peut que la première page soit chargée, car c'est tout ce qui se trouve dans l'historique du navigateur. –

Répondre

3

Il est préférable d'ajouter une chaîne de requête avec le numéro de page actuel. Par exemple, considérons votre page est a.aspx et passez juste une chaîne comme ceci a.aspx?pg=1. Sur la page chargez if(Request.QueryString["pg"]!=null) puis affichez simplement les enregistrements de la page 1. Supposons que si vous voulez montrer à la page 25 alors url sera comme ceci: a.aspx?pg=25. Donc, si un utilisateur rafraîchit par F5, il affichera toujours les mêmes données. Si la page a subi une publication (en raison de l'événement de clic sur le bouton ou de la liste déroulante, l'index sélectionné a changé), il affichera également le même enregistrement à cause de Querystring. Vous pouvez également modifier le numéro de page en le redirigeant vers la même page avec une autre valeur dans la chaîne de requête, par exemple: Response.Redirect("a.aspx?pg=26").

Je pense que cela va résoudre votre problème.

0

Si vous liez par programme l'événement de chargement de la page, cela se produira. Vous pouvez définir une variable de session lorsque l'utilisateur change de page et la gérer dans l'événement de chargement de la page.