2008-10-07 7 views
0

J'ai une page simple avec un champ HtmlInputHidden. J'utilise un javascript pour mettre à jour cette valeur et lorsque je publie la page, je veux lire la valeur de ce champ HtmlInputHidden.Lecture de la valeur modifiée dynamiquement d'un HtmlInputHidden dans ASP.NET

La propriété Value de ce champ HtmlInputHidden est en postback la valeur par défaut (la valeur qu'il avait lorsque la page a été créée, pas la valeur reflétée par le javascript). J'ai également essayé d'enregistrer le champ HtmlInputHidden avec ScriptManager.RegisterHiddenField (Page, "MyHtmlImputHiddenField", "initialvalue") mais il me permet toujours de lire la "valeur initiale" même si je (par javascript) peut inspecter que la valeur a changé.

Répondre

3

Le champ de saisie doit figurer dans un formulaire. Assurez-vous également que ViewState est activé.

+0

Merci - j'ai oublié seulement certains contrôles (et pas de contrôles HTML) ont enableviewstate mis à true par défaut:) –

1

Vous voulez idéalement utiliser le asp.net HiddenField contrôle

<asp:HiddenField id="myHiddenField" runat="server" /> 

Ensuite, vous serez en mesure de lire la valeur du code sous-jacent lorsque la page est le traitement.

string value = myHiddenField.Value; // retrieve the value in hidden field 

réf; HiddenField Web Server Control Overview

  • Soyez prudent sur le nom DOM du contrôle (control.ClientID) du côté client (par exemple lorsque vous accédez de javascript) car il peut changer selon l'endroit où sur la page que vous avez déclaré le contrôle.
+0

Bon message que vous avez fait. En fait, j'ai fait tout ce qui précède mais j'ai oublié de mettre enableviewstate = "true";) –

+0

Pensez-y - je n'ai pas vraiment utilisé l'asp: HiddenField - j'ai utilisé le HTMLInputHidden qui n'est pas un "pur" asp.net contrôle. Je suis sûr que votre exemple fonctionnerait aussi, puisque tous (les contrôles afaik? Asp: enableviewstate ont la valeur true par défaut) –

Questions connexes