J'ai un tableau dans ma page_load dans c # que je veux accéder au script java mais je ne sais pas comment faire …
float [] energyArray = new float[count]; for (int i = 0; i < count; i++) { energyArray[i] = energyObj[i].FwdHr; }
Maintenant, je souhaite accéder en javascript au lieu de données –
series: [{ name: 'Tokyo', data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6] }]
Un moyen très simple est d'utiliser la classe JavaScriptSerializer pour transformer votre objet C # en JSON:
C #
float [] energyArray = new float[count]; for (int i = 0; i < count; i++) { energyArray[i] = energyObj[i].FwdHr; }
Javascript:
var dataArray = <%=new JavaScriptSerializer().Serialize(energyArray);%>; var series = [{ name: 'Tokyo', data: dataArray }];
Changer votre problème un peu ici …
Au lieu de manipuler un script déjà existant, envisagez de construire tout le bloc de chaîne javascript, puis utilisez Page.RegisterClientScriptBlock
.
http://msdn.microsoft.com/en-us/library/system.web.ui.page.registerclientscriptblock.aspx
int[] yourArray = new int[] { 1, 2, 3 }; string arrElements = string.Join(",", yourArray.Select(x => x.ToString()).ToArray()); string strJs = string.Format("var yourArray=[{0}]", arrElements); RegisterClientScriptBlock("Test", strJs);
Vous devriez passer le tableau au côté client (la partie javascript) en quelque sorte:
Je suggérerais de faire une requête ajax sur une page, qui renverrait le tableau sérialisé ou comme suggéré @ Blade0rz, pour afficher la chaîne sérialisée directement sur la page. Pour sérialiser le tableau sur un format JSON, vous appelez les méthodes de la classe JavaScriptSerializer:
Plus ici ici
Déclarer un champ caché
<asp:HiddenField id="myHiddenField" runat="server"
Définissez sa valeur sur votre array.Tosttring () dans le code derrière Ensuite, dans votre javascript
var h = document.getElementById('myHiddenField'); //Should give you an array of strings that you can cast to integers
C # code derrière:
float [] energyArray = new float[count]; public JavaScriptSerializer javaSerial = new JavaScriptSerializer();
Essayez ce code:
<script> var a = <%= this.javaSerial.Serialize(this.energyArray) %>; for (var i = 0; i < a.length; i++) { console.log(a[i]); } </script>