2011-01-27 2 views
0

i ont une page Web qui charge les données dans un gridview et rafraîchit la gridview toutes les quelques secondes. Je fais ceci par l'intermédiaire d'un asp: Timer qui exécute une fonction de C# toutes les quelques secondes pour actualiser la base de données et databind le gridview.ASP.net rafraîchissement désactiver lorsque dropdownlist est ouvert

J'ai aussi quelques listes déroulantes pour filtrer les données du gridview. Ces listes déroulantes obtiennent leurs données à partir du même ensemble de données que la grille (par exemple, si la grille affiche les statistiques de toutes les pommes extraites des arbres, alors la liste peut contenir, par exemple, tous les types de pommes distincts). La façon dont j'actualise ces listes déroulantes est de nouveau pour actualiser l'ensemble de données et réinitialiser l'index sélectionné pour qu'il soit sélectionné au moment de l'actualisation. Cela pose donc un problème lorsque la minuterie est activée lorsque la liste déroulante est ouverte - l'index de la liste déroulante est sélectionné et actualise la vue de grille, la liste déroulante est également actualisée avec l'index sélectionné et se ferme.

La question que j'ai comment désactiver mon actualisation de l'horloge d'aller hors tension pendant les listes déroulantes sont actives - ou peut-être comment puis-je faire mieux?

edit: a oublié de mentionner que j'utilise ajax/UpdatePanel pour le rafraîchissement

Répondre

2

La première chose que vous devez faire est de définir un événement pour capturer quand le menu déroulant est ouvert. Je ne pense pas qu'il y en ait un, mais vous pourriez utiliser les événements focus() ... peut-être.

Ensuite, lorsque la liste déroulante est ouverte, vous devez désactiver la minuterie côté client. Cet article explique (mais en utilisant une case à cocher)

http://weblogs.asp.net/aboschin/archive/2007/10/06/ajax-how-to-control-an-lt-asp-timer-gt-on-client-side.aspx

+0

voir cet article qui vous expliquera comment minuterie contrôler du côté client (js) lorsque l'utilisateur est en train de taper dans une entrée (votre situation est similaire, sauf que vous avez liste déroulante): http://mattberseth.com/blog/2008/05/bug_bash_enablingdisabling_the.html – VinayC

Questions connexes