2008-11-20 6 views
1

Je crée un formulaire Web multi-parties dans ASP.NET qui utilise des panneaux pour les différentes étapes, rendant visible uniquement le panneau pour l'étape en cours. Sur l'étape 1, j'ai une liste déroulante qui utilise une fonction Javascript pour reconfigurer certains des champs dans le même panneau via "onchange". Évidemment, comme le script côté client n'affecte que le DOM, lorsque je passe à l'étape 2 et que je reviens à l'étape 1, les champs de l'étape 1 reviennent à leur configuration orignal même si le même choix déroulant est sélectionné.Bon moyen de maintenir les états du panneau ASP.NET?

Quelle est une bonne méthode pour stocker l'état visuel des panneaux entre les étapes? J'ai envisagé d'appeler la fonction onchange du menu déroulant à la page de chargement, mais cela semblait maladroit. Merci!

-

Merci pour les réponses rapides - je pense que je vais essayer de l'assistant, mais la solution AJAX ressemble aussi amusant.

Répondre

1

Vous pourriez considérer un contrôle d'assistant ASP.Net pour ceci - il automatisera beaucoup de ce que vous essayez de faire.

1

Je vous suggère d'utiliser le contrôle MultiView, qui est sémantiquement plus approprié. Et puis stocker ces données dans ViewState. J'ai écrit quelque chose de similaire et ça berce.

1

Je pense que votre meilleur pari est de maintenir tout votre état dans un endroit, ou ne maintenir aucun état du tout. Le principal problème que vous rencontrez est la synchronisation de votre état côté client avec votre état côté serveur.

Essayez d'afficher/masquer vos panneaux avec javascript au lieu de les poster, si possible. Si ce n'est pas le cas, utilisez un ajax pour mettre à jour les valeurs côté serveur dès qu'elles sont sélectionnées, plutôt que lorsque vous cliquez sur le bouton suivant/précédent.

Sinon, vous pouvez utiliser quelque chose comme ASP.Net Ajax Toolkit Tabs pour faciliter les transitions.

Espérons que ça aide!

+0

Ajax est super, mais rappelez-vous que ce n'est pas accessible, c'est-à-dire que les lecteurs d'écran ne liront pas le formulaire, cela dépend des exigences de votre client que vous devez prendre en compte. – netadictos

+0

Bon point. Bon mot aussi. ^^ –

Questions connexes