2010-06-22 7 views
0

dans le code aspx derrière, définir un var comme:comment obtenir la valeur var du côté du serveur?

Public rate as decimal; 

puis dans le balisage de la page, placez un contrôle comme:

<asp:HiddenField ID="myRate" runat="server" Value='<%=rate%>'/> 

puis en javascript essayer de tester cette valeur:

alert(document.getElementById('<%=myRate.ClientID%>').value); 

il m'a donné la valeur <% = myRate%>, pas quelque chose comme 0,01 dans le popup d'alerte.

Comment résoudre ce problème

Répondre

5

balises Server ne sont pas évaluées dans ce cas (ce qui est la raison pour laquelle vous voyez le texte littéral):

<asp:HiddenField ID="myRate" runat="server" Value='<%=rate%>'/> 

les options les plus faciles sont à elle définie dans le code-behind:

myRate.Value = rate; 

ou, à moins qu'il doit être un contrôle serveur, il suffit d'utiliser une entrée cachée:

<input id="myRate" type="hidden" value="<%=rate%>" /> 

Et l'obtenir en utilisant cet ID:

document.getElementById('myRate').value 
+0

Génial! votre solution fonctionne bien. Merci beaucoup. – KentZhou

0

essayez de régler la valeur de la charge de la page dans le code derrière,

Je suis surpris de voir cette approche a fonctionné comme je ne pensais pas que vous pouvez utiliser la response.write construire dans un contrôle du serveur?

Une autre option peut être de définir via la syntaxe de liaison afin

<asp:HiddenField ID="myRate" runat="server" Value='<%#this.rate%>'/> 
0

Comment je le ferais

<asp:HiddenField ID="MyRate" runat="server" Value="<%# this.rate %>" /> 

Puis dans mon javascript:

alert(document.getElementById('<%=myRate.ClientID%>').value); 
Questions connexes