Puis-je éviter d'avoir un UpdatePanel qui tue viewstate?

voix
3

Je la page de sélection qui a un gridview qui présente à l'utilisateur une liste des éléments de données qu'ils peuvent cliquer sur « foret dans » - les rediriger vers la page de maintenance des données.

Parce que la liste peut être longue, nous avons une série de cases à cocher et les listes déroulantes en haut qui agissent comme des filtres.

Nous venons tout juste mis en place un UpdatePanel avec un UpdatePanelAnimationExtender de sorte que lorsque la page a fait de longs trajets vers le databse, ils obtiendraient une belle « Traitement en cours ... » pop up.

Le problème est, cela semble briser le viewstate sur les listes déroulantes et cases à cocher. Maintenant, quand ils vont à la page page de détail et cliquez sur le bouton BACK pour revenir à la « sélection » - les valeurs sélectionnées dans les cases à cocher et déposez-downlists sont de retour à leurs réglages par défaut. Les listes sont encore peuplées, mais ce qu'ils « oublié » qu'ils avaient quand l'utilisateur a cliqué sur la page de maintenance des données.

Je pris le code .aspx pour l'UpdatePanel et l'animation étendue et retesté et tout a parfaitement fonctionné. Donc, apparemment, le UpdatePanel et / ou le AnimationExtender ne joue pas bien avec l'état d'affichage.

Est-il possible que je peux arrêter les actions de l'UpdatePanel de, en effet, mettre à zéro les propriétés » .SelectedValue »?

Créé 29/06/2009 à 16:15
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
2

D'abord, je supprimerais vos contrôles « filtrage » de la UpdatePanel. En supposant que les données de ces contrôles sont évalués Page_Load, ils ne doivent pas nécessairement être actualisé chaque fois que le filtre est appliqué à la GridView. Seul le GridView est en cours d'actualisation, il est donc probable que ce soit le seul contrôle qui doit être contenu dans le UpdatePanel.

Chacun des contrôles de filtrage peuvent être ajoutés comme un déclencheur pour la mise à jour du UpdatePanel en les déclarant dans la section du contrôle UpdatePanel. Ou, si le processus de filtrage est invoquée par un comme bouton « Soumettre », ce serait le contrôle à déclarer dans la section. Cela devrait conserver les valeurs des contrôles de filtrage dans le cache du navigateur.

Vous pouvez également essayer le contrôle UpdateHistory de Nikhil Kothari (Nikhil a un excellent blog, btw) qui sauvera le contenu du UpdatePanel que les entrées de l' histoire dans la liste d'historique du navigateur.

EDIT: Pour votre information, UpdatePanel ne pas "tuer" ViewState. Le ViewState est transmis avant et en arrière par le mécanisme de mise à jour de UpdatePanel, ce qui provoque souvent des problèmes de performance si le ViewState est trop grande. Ce que vous voyez est le cache de l'historique du navigateur pour ne pas stocker les valeurs qui ont été mises à jour sur les callbacks successives. Les techniques ci-dessus devraient vous aider.

Créé 29/06/2009 à 16:51
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more