我有以下代码 -
C#
string data = string.Format("[{0}]", string.Join(",", listOfInts));
string script = string.Format("chart('{0}','{1}','{2}','{3}','{4}','{5}','{6}');",
startYear, startMonth, startDay, startHour, startMinute, chartTitle, data);
ScriptManager.RegisterStartupScript(this, GetType(), "chart", script, true);
的Javascript
series: [{
type: 'area',
name: 'Count:',
pointInterval: 3600 * 1000,
pointStart: Date.UTC(startYear, startMonth, startDay, startHour, startMinute),
data: intsAsJSArray
}]
inrtAsJSArray
= "[1,2,3,4,5,6,7]"
。
这打破了图形功能,我意识到这是由于data
格式错误。
但是,如果我将data
部分硬编码为 -
series: [{
type: 'area',
name: 'Count:',
pointInterval: 3600 * 1000,
pointStart: Date.UTC(startYear, startMonth, startDay, startHour, startMinute),
data: [1,2,3,4,5,6,7]
}]
这是有效的,如何重新配置intASJarray
才能被接受进入系列?
答案 0 :(得分:1)
您可以将字符串解析为数组
var str = "[1,2,3,4,5,6,7]";
var trim = str.replace(/[\[\]]/g, "");
var data = trim.split(",");
data = data.map(function (d) {
return +d;
});
console.log(data);
这是演示jsfiddle
答案 1 :(得分:0)
我对RegisterStartupScript
并不熟悉,但问题的关键在于你的intASJarray
会以javascript字符串而不是数组结束。
尝试:
string script = string.Format("chart('{0}','{1}','{2}','{3}','{4}','{5}',{6});",
startYear, startMonth, startDay, startHour, startMinute, chartTitle, data);
注意我已经删除了字符串格式{6}
参数的引号。您可能还需要为数据部分执行此操作。
答案 2 :(得分:0)
如果您定位支持JSON.parse()的浏览器,则可以像这样解析字符串:
series: [{
type: 'area',
name: 'Count:',
pointInterval: 3600 * 1000,
pointStart: Date.UTC(startYear, startMonth, startDay, startHour, startMinute),
data: JSON.parse(intsAsJSArray)
}]