L'enregistrement d'un, et de la lecture à partir de l'état d'affichage
Je ne suis pas trop familier avec .NET, mais je veux enregistrer une valeur simple (un nombre entre 1 et 1000, ce qui est la hauteur d'un particulier div
) à l'état d'affichage et de les récupérer lors de la mise à jour du panneau de recharge (soit dans la balise quelque part ou avec le javascript). Quelle est la façon la plus simple de faire cela?
Cette page me donne le code suivant:
string strColor;
if (Page.IsPostBack)
{
//Retrieve and display the property value.
strColor = (string)ViewState["color"];
Response.Write(strColor);
}
else
//Save the property value.
ViewState["color"] = "yellow";
Cependant, je ne suis pas totalement clair sur où et comment accéder à l'exemple strColor.
Puisque c'est dans le code-behind, où va Response.Write
même cracher ce code? Je ne pouvais pas le trouver quand j'ai essayé ce code. Et comment puis-je utiliser javascript pour définir cette valeur, au lieu de définir dans le code derrière?
OriginalL'auteur brentonstrine | 2012-08-02
Vous devez vous connecter pour publier un commentaire.
Vous pouvez simplement mettre la div comme un serveur de contrôle de la manière suivante:
Et lorsque la page enregistre; il suffit de le mettre en hauteur par l'établissement de ses attributs; par exemple:
Ou, vous pouvez stocker la hauteur sur le côté client, à l'aide d'un champ Caché et la lecture de ce champ caché de la valeur sur le côté serveur pour définir le div de la hauteur.
Vous réglez la hauteur en Javascript comme ceci:
Et sur le post de retour sur le côté serveur:
Vous ne manquez rien. Si la page est rechargée, comme dans "en tapant l'url et appuyez sur entrée" alors il est normal que la valeur est remise à zéro parce que vous êtes à la page pour la première fois. Si vous parlez d'une publication (c'est à dire en cliquant sur un bouton sur la page et en soumettant le formulaire), alors la valeur du champ caché doit être conservé, car le ViewState va le garder pour vous. C'est que -l'échelle - ce qui se passe pour vous?
Vous avez raison: j'ai été confondu parce que j'était en train de recharger au lieu de faire de la publication chose. Pour avoir la valeur de persister à travers un reload, je suppose que j'avais besoin d'enregistrer quelque chose sur le serveur--ne vaut pas mon effort maintenant puisque la principale chose que j'ai besoin, c'est de persister à travers la publication, de sorte qu'il fonctionne maintenant, merci!
OriginalL'auteur Icarus
Je voudrais changer strColor à une propriété et d'utiliser le viewstate comme un magasin de sauvegarde de l'propery.
Et puis vous pouvez l'utiliser comme n'importe quel autre propriété:
Vous pouvez l'utiliser comme une variable normale, où les variables normales peuvent être utilisés. Je n'ai pas vraiment comprendre votre contexte, donc je ne peux pas donner une recommandation sur rien de plus que votre question initiale.
Permettez-moi de le dire de cette manière: "dis: je ne veux pas enregistrer
strColor
à des "jaunes", mais à une valeur que les entrées de l'utilisateur lorsque vous êtes invité avec un javascript invite. Comment puis-je définirstrColor
à la réponse de l'utilisateur avec le javascript?Ahhh, ok. Ajouter un
<asp:HiddenField/>
à la page et l'utilisation de JavaScript pour définir le champ caché de la valeur de la réponse de l'utilisateur.HiddenField
a ViewState intégrée, donc vous ne devriez pas mon code. Fondamentalement, Icare " de la réponse.Je suis d'accord que l'encapsulation de votre état d'affichage des variables dans les propriétés facilite l'accès à eux, mais est-ce considéré comme une bonne pratique? Est-il rien écrit sur ce sujet en ligne qui pourrait m'aider à faire le cas pour mettre en œuvre ce qu'une norme? Je n'arrive pas à trouver un article en se référant expressément aux bénéfices de cette pratique...
OriginalL'auteur Jeff