2010-07-30 13 views

risposta

1

è possibile generare lo script sul lato server e incorporare il valore in esso:

StringBuilder sb = new StringBuilder(); 
sb.Append("<script type=\"text/javascript\""); 
sb.Append("var someFunc = function(){"); 
sb.AppendFormat("alert('{0}');", importantServerSideValue); 
sb.Append("};"); 
sb.Append("</script>"); 

Page.ClientScript.RegisterClientScriptBlock("genScript", sb.ToString()); 

oppure inserire il valore in un elemento di modulo nascosto sulla pagina e accedervi dal lato client Javascript.

<!-- In the Markup --> 
<asp:HtmlInputHidden id="hiddenField" runat="server" /> 

// And in the code-behind 
hiddenField.Value = importantServerSideValue; 
+0

StringBuilder per creare script da inserire nella pagina, aaargh, i miei occhi! ;-) Il campo di input nascosto è molto meglio però :) – Rob

+0

@Rob - Hehe. Di solito, per default, costruisco lo script nel codice, a meno che l'OP affermi che non ha bisogno di usare nessuno dei metodi speciali di Registrazione dello script (come Registrarlo come script di avvio, ecc.). –

9

Se vuoi dire che è necessario passare il valore a una funzione javascript, che cosa si può fare è qualcosa di simile ...

Nel file aspx:

<script language="javascript" type="text/javascript"> 
    var stringValue = '<%=GetStringValue();%>'; 

    // For example: 

    alert(stringValue); 
</sctipt> 

nel file .aspx.cs:

private string GetStringValue() 
{ 
    return "A string value"; 
} 

Questo sarebbe poi mostrare un messagebox javascript dicendo "un valore di stringa "quando la pagina viene caricata

0

Quando ho dovuto passare un valore variabile da PHP a JS, ho usato php per echo il js con una variabile impostata sul valore della variabile php. per esempio.

//php code 
echo 'var number = ' . $variable . ';'; 
Problemi correlati