2010-08-13 5 views
2

J'essaie de conserver le contenu d'une zone de texte via une publication, et j'ai épuisé tous mes efforts, mais je n'arrive pas à le faire fonctionner correctement.ASP.NET - Valeurs de contrôle dynamique et publication

Ce qui devrait arriver est:

  1. L'utilisateur sélectionne un bouton radio
  2. En fonction qui touche était sélection, un usercontrol est chargé de spécifier des données et un viewstate pour dire quel type ENUM il est équivalent à.
  3. Quand ils cliquent sauver, si le UserControl est juste une entrée de zone de texte - le plus simple), les contenus sont lus et enregistrés, puis enregistré à la base de données avec le format (le choix radiobutton) afin qu'ils peuvent être de nouveau désérialisé plus tard.
  4. La page affiche de retour, et la valeur et le format sont lus à partir de la base de données, puis le contrôle de droite est chargé.

Le problème est - la première fois que la page publie, cela fonctionne. Tous les autres postback il réinitialise à la valeur par défaut de la zone de texte.

J'ai une configuration très similaire ailleurs, donc je pense que ce pourrait être une chose mineure à laquelle je n'aurais jamais pensé. Il y a beaucoup de code, donc il peut être plus facile de parler de ce qu'il faut faire (charger le contrôle dynamique, remplir les valeurs, etc.) plutôt que de savoir comment le faire.

Répondre

0

Il y avait effectivement un bogue dans mon code d'origine qui signifiait qu'il n'aurait jamais eu dans la façon dont j'utilisais la version modifiée. Apparemment, l'état est restauré dans Page_Load, de sorte que tous les contrôles doivent être initialisés pour que leurs valeurs soient restaurées.

La création du contrôle dans Page_PreLoad, puis son remplissage après Page_Load a résolu le problème.

Questions connexes