Repositionnement de la scrollbar apres un postback

Soyez le premier à donner votre avis sur cette source.

Vue 9 090 fois - Téléchargée 468 fois

Description

Ce petit contrôle (dérivé de HtmlInputHidden) permet d'annuler les mouvements de la scrollbar apres chaque postback dans de longues pages.

Le principe: avant chaque postback on enregistre la position de la scrollbar dans le viewstate et a la suite de celui ci, on la replace au bon endroit.

Ce code utilise du javascript pour pouvoir justement écrire la position de la scrollbar dans le contrôle HtmlInputHidden

Pour le code c'est dans le zip...

Par contre il ne faut pas oublier de charger le controle dans la page...

Conclusion :


Pour info l'idée de repositionner vient d'un autre site(je sais plus lequel :o) leur source ne marchait pas alors j'ai refait qqchose...

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

WebGourou
Messages postés
3
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
26 février 2010
-
guillrich
Messages postés
11
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
23 mars 2009
-
J'ai téléchargé le code et je ne suis pas certain de comprendre comment l'utiliser dans mon code. Pourrais-je avoir un exemple facile qui pourrait m'expliquer un peu plus comment l'intégrer dans mon code-behind?

Merci
WebGourou
Messages postés
3
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
26 février 2010
-
D'accord, mais ca fait la meme chose que mon control et en plus je peu le generer dynamiquement dans le codebehind
avec

monControl c = new monControl();
monPlaceHolder.Controls.Add(c);

A+
deomis
Messages postés
1
Date d'inscription
mardi 7 janvier 2003
Statut
Membre
Dernière intervention
12 décembre 2003
-
il existe beucoup plus simple :
en gros il suffit de déclarer un champs caché puis lui ajouté runat=server pour la gestion du viewState puis d'appliquer ma petite fonction javascript et le tour est joué.

//pour la gestion facilité du viewState on est obligé de mettre les champs en runat:server


<SCRIPT language="javascript">
var x = document.getElementById('TscrollLeft').value;
var y = document.getElementById('TscrollTop').value;
window.onload = function()
{
window.scrollTo(x,y);
}

//des que l'utilisateur scroll la page
window.onscroll = function()
{
document.getElementById('TscrollLeft').value = document.body.scrollLeft;
document.getElementById('TscrollTop').value = document.body.scrollTop;
}
</SCRIPT>

Attention des fois dotnet renomme ces controles prefixé par le nom de la page(ex :" id=page:'TscrollLeft' ")
WebGourou
Messages postés
3
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
26 février 2010
-
Effectivement mais cela ne marche que sur IE, et encore je sai meme pas si ce n'est pas que sur IE 6 alors...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.