Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

passing c# array to java script

I have an array in my page_load in c# which i want to access in java script but don't know how to do that..

float [] energyArray = new float[count];
for (int i = 0; i < count; i++)
{
    energyArray[i] = energyObj[i].FwdHr;
}

Now i want to access in javascript in place of data-

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]
}]       
like image 322
Inderpal Singh Avatar asked Dec 20 '22 04:12

Inderpal Singh


2 Answers

A very easy way is to use the JavaScriptSerializer class to transform your C# object into 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
        }];
like image 92
CodingIntrigue Avatar answered Jan 01 '23 00:01

CodingIntrigue


Changing your problem a little bit here...

Instead of manipulating an already existing script, consider constructing the whole javascript string block and then use 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);
like image 20
LukeHennerley Avatar answered Jan 01 '23 00:01

LukeHennerley