2010-03-30 11 views
0

Bonjour,Est-il conseillé de stocker les résultats de recherche Gridview dans Session?

J'ai créé un formulaire Web ASP.NET 3.5 qui permet aux utilisateurs de rechercher une liste de pièces. Les deux contrôles de zone de texte fournissent les paramètres d'entrée à la procédure stockée. La vue grille renvoie les résultats de la recherche à partir de la procédure stockée.

J'ai amélioré la vue de grille pour inclure un champ de modèle avec une zone de texte pour Quantité, ainsi qu'un contrôle de bouton dans le pied de page grille à utiliser pour ajouter les pièces (avec quantité) à une demande de devis.

Un utilisateur peut rechercher un clou et un marteau, sélectionner un clou et entrer 25 quantité et sélectionner un marteau avec 1 quantité. Ces articles et quantités doivent être conservés pour être utilisés dans le processus de devis. Question: Compte tenu de mon scénario, conseillez-vous de stocker les quantités de grille de vue, nom de pièce etc. dans une session? Si non, quel est le meilleur moyen de sauvegarder ces éléments pour les utiliser plus tard dans le processus de devis?

Merci, Sid

Répondre

1

Alors que le gridview est affiché, à savoir que vous le rendre, je garderais les détails sur cette page. Lorsque vous quittez cette page pour continuer le processus de commande, je les stocke probablement dans la session, ou les garde sur la page dans une zone cachée.

La raison en est que la session est chargée sur chaque requête de page, de sorte que vous ne voulez pas conserver les informations dans la session pendant le temps le plus court nécessaire.

Pour compliquer encore plus votre application si l'utilisateur utilise le bouton Précédent et Suivant du navigateur, quel serait le résultat attendu? Considérons, ils ont ajouté les ongles, puis le marteau, puis ils cliquent sur le bouton de retour avant d'ajouter l'ammer, puis ajouter un tournevis. Quelle est la commande? clous, marteau et tournevis? ou des clous et un tournevis? Ainsi, garder les données sur la page si possible est bon car si l'utilisateur recule, l'état de la commande le fait également. Attention cependant, vous ne voulez pas ajouter trop à la page que ViewState ne se dilate pas trop, alors surveillez cela et désactivez-le si vous n'en avez pas besoin.

+0

J'ai pensé à ajouter un autre contrôle de page qui est rempli lorsque l'utilisateur clique sur le bouton Ajouter à la soumission. Cela fait 2 choses: 1) Persiste la logique métier de ne permettre que 20 parties (éléments de ligne). 2) Rappelle aux utilisateurs les éléments qu'ils ont déjà sélectionnés. Si je l'ai fait, comme un contrôle visible, quel type de contrôle est conseillé? – SidC

1

Je ne vois pas de problème avec l'utilisation de la session car cela ne ressemble pas à une application robuste. La seule autre chose que vous pouvez faire est d'utiliser une base de données et de le stocker comme une ligne temporaire dans la base de données. Vous devrez vous en débarrasser quand vous n'en aurez pas besoin.

La seule autre chose que vous pourriez faire est de le mettre en cache.