2009-10-21 8 views
0

Je travaille actuellement sur une application/un jeu Web utilisant C# et ASP.NET (3.5). Cependant, je suis confronté à un problème de variables utilisées dans la page principale étant remis à zéro chaque fois que je clique sur un bouton sur le formulaire Web. Je me demande s'il y avait un moyen de permettre aux variables de persister pendant le cycle de vie de l'ensemble de l'application, ainsi que pour les variables accessibles depuis n'importe où et n'importe quand. Un autre problème que j'ai en ce moment est que je ne peux pas trouver un moyen de mettre à jour les propriétés des contrôles, comme le texte ou la couleur, sans avoir à actualiser la page. Existe-t-il un moyen de mettre à jour ces propriétés "silencieusement" sans forcer l'utilisateur à parcourir le cycle complet d'actualisation de la page?Persistance des données et mises à jour dans les formulaires Web ASP.NET

Merci

Répondre

0

ViewState est peut-être désactivé au niveau de la page (ou au niveau de l'application).

Habituellement ASP.NET stocke l'état de chaque contrôle dans la page en cours dans l'objet Viewstate pour préserver leur statut sur les rechargements. Jetez un coup d'oeil à l'objet EnableViewState dans votre code (Front End) ou creusez dans le web.config.

Si vous souhaitez également que les données persistent au niveau de la page, utilisez l'objet Session et contournez la propriété timeout pour trouver une valeur appropriée qui fonctionnera pour vous et vos utilisateurs. SlidingExpirationg pourrait aussi être utile. Si vous allez utiliser cette solution, vous pouvez également vous poser quelques questions. Votre application utilise-t-elle un seul serveur ou est-elle susceptible d'être déployée dans une batterie de serveurs? Si tel est le cas, envisagez d'utiliser l'état de session SQL au lieu d'InProc car il fournira un emplacement "centré" plus cohérent pour stocker les données de session consommées par différents serveurs. En ce qui concerne la mise à jour des contrôles sans actualisation de la page, vous recherchez quelque chose appelé Ajax. Microsoft a publié ASP.NET Ajax Toolkit, jetez y un coup d'oeil, en particulier l'ASP: UpdatePanel qui vous permettra de "mettre à jour partiellement" des morceaux de la page sans recharger tout le reste.

C'est le moyen le plus simple et le plus simple de mettre à jour les propriétés des contrôles sans trop d'efforts.

+0

Merci. Je viens juste de découvrir que tous les contrôles AJAX sont déjà là, juste que je ne les ai pas ajoutés à ma boîte à outils dans Visual Studio, ils ajoutent définitivement beaucoup plus de fonctionnalités à ce que je pensais initialement devoir travailler. – Kronon

2
  1. Utilisation collection de session de persister pour un utilisateur particulier. Vous pouvez également utiliser des variables statiques pour conserver leurs valeurs pour la durée de vie du domaine d'application (pour tous les utilisateurs du site jusqu'à ce que le serveur Web redémarre ou tombe en panne). Pour mettre à jour les portions de page «silencieusement», mettez-les dans UpdatePanels (chose de bibliothèque Microsoft AJAX) ou utilisez JavaScript (vous pouvez utiliser une bibliothèque JS comme jQuery pour faciliter la compatibilité cross-browser) pour manipulale la structure de votre document à la volée.

+0

En référence à (2) licence en attente d'édition: "utiliser JavaScript (ceci sera rendu plus facile si vous utilisez une bibliothèque JS comme jQuery – Murph

+0

Merci d'avoir essayé d'utiliser les variables Session et Application. Je ne sais pas trop comment accéder aux méthodes et propriétés associées à cette variable particulière – Kronon

0

En outre, pour mettre à jour les objets côté client sans publication sur le serveur, vous devez utiliser javascript. jQuery sera probablement votre meilleur pari.

+0

Merci, je vais regarder dans JQuerys – Kronon

2

Cela dépend vraiment de l'objectif des variables et de leur portée.

Pour les variables qui sont différentes pour chaque visiteur, vous souhaitez placer ces variables dans session.

Pour des variables globales à votre application tout, et sont les mêmes pour chaque visiteur, vous pouvez utiliser des variables statiques, ou les mettre en web.config comme Application Settings

Modification du texte/couleur sur le client , cela semble que vous pourriez avoir besoin de faire usage de certains javascript. JQuery est une bibliothèque javascript qui facilite beaucoup de ces types de manipulations.

+0

Merci, je serai sûr de chercher sur JQuery comme une solution de rechange – Kronon

Questions connexes