2009-10-13 18 views
1

Après presque 4 ans d'utilisation, un de mes testeurs a remarqué quelque chose d'étrange avec mes panneaux de mise à jour.Hauteur du panneau de mise à jour restant la plus grande taille après la mise à jour

Disons que j'ai un mode d'affichage et qu'il faut 100 pixels de hauteur. L'utilisateur passe ensuite en mode édition et le panneau de mise à jour se met à jour. La fenêtre a maintenant 500 pixels de hauteur. L'utilisateur clique sur sauvegarder et revient en mode d'affichage, qui n'est que de 100 pixels.

Maintenant, le dom ne prend que 100 pixels, mais il y a toujours une barre de défilement jusqu'à 500 pixels. Si l'utilisateur réduit l'écran à 100 pixels, il verra toujours une barre de défilement, malgré le fait qu'il n'y a plus rien là-bas.

Qu'est-ce qui cause ça et comment puis-je le réparer? C'est comme si l'updatepanel ne disait pas à la fenêtre qu'elle n'avait plus besoin de toute cette hauteur.

Répondre

2

J'ai l'impression que votre contrôle utilise peut-être visibility = "visible | hidden" au lieu de display: "none | block".

Utilisez IE Dev Toolbar ou Firebug pour connaître la structure DOM pendant l'état de votre page.

Il se peut aussi que votre mode d'édition soit trop grand pour son conteneur à hauteur fixe. Essayez de ne pas contraindre le conteneur le plus à l'extérieur pour qu'il puisse grandir avec le contenu interne qui change dynamiquement.

La propriété de visibilité détermine si un élément donné est visible ou non (visibilité = "visible | caché"). Cependant, lorsque la visibilité est définie sur masqué, l'élément caché reste occupe à la même place dans la mise en page de la page.

CSS Properties: Display vs. Visibility

+0

C'était à peu près tout. Nous avons un div qui est visible lors des mises à jour. C'est un div opaque (pos absolu, z-order high) qui prend la page entière et capture les clics pour que les gens ne puissent rien faire pendant une pageload. Quelqu'un a mis la hauteur de la div à la hauteur de window.scrollwidth de sorte qu'il prend toute la page via javascript. Ce nombre dur ne change pas. Je l'ai fait prendre 100% à la place, ce qui fonctionne très bien. – diadem

+0

Oh, et comme vous l'avez dit, ils ont mis la visibilité à caché au lieu de rien, en dépit du fait qu'il n'avait aucune raison d'exister. C'était juste difficile à traquer parce que l'élément dom a été modifié de façon programmatique dans un fichier js. – diadem

Questions connexes