C# ASP.NET中HighCharts JS中的数据预处理
我正在ASP.NET 2.0中使用创建条形图 下面是如何在javascript中创建图表:C# ASP.NET中HighCharts JS中的数据预处理,c#,javascript,asp.net,charts,highcharts,C#,Javascript,Asp.net,Charts,Highcharts,我正在ASP.NET 2.0中使用创建条形图 下面是如何在javascript中创建图表: $(function () { $('#container').highcharts({ chart: { type: 'bar' }, title: { text: 'Fruit Consumption' }, xAxis: { categor
$(function () {
$('#container').highcharts({
chart: {
type: 'bar'
},
title: {
text: 'Fruit Consumption'
},
xAxis: {
categories: ['Apples', 'Bananas', 'Oranges']
},
yAxis: {
title: {
text: 'Fruit eaten'
}
},
series: [{
name: 'Jane',
data: [1, 0, 4]
}, {
name: 'John',
data: [5, 7, 3]
}]
});
});
我用c语言编写了以下代码:
public string[] Names = new string[] { "Name1", "Name2", "Name3"};
public string[] Data = new string[] { "[1,0,4]", "[5,7,3]", "[2,3,4]"};
如何在javascript中使用字符串[]名称和数据来更改图表的值
请帮帮我,我被困在里面了谢谢
-为亚里士多德编辑-
我试过你的答案,但没用。根据您的回答,此javascript将与您所做的相同。选中此项:
$(function () {
var seriesTest = "{ name: 'Jane', data: [1, 0, 4] }, { name: 'John', data: [5, 7, 3] }";
$('#container').highcharts({
chart: {
type: 'bar'
},
title: {
text: 'Fruit Consumption'
},
xAxis: {
categories: ['Apples', 'Bananas', 'Oranges']
},
yAxis: {
title: {
text: 'Fruit eaten'
}
},
series: [seriesTest]
});
});
我已经试过了,但不起作用,因为我认为series.data只接受括号[]内的整数
我已经按照KingCronus的建议检查了DotNet.HighCharts,但这不能在asp.net 2.0框架中使用: 在最简单的表单上,您只需要以正确的格式渲染它们。 这里是一个简单的例子,可能需要一些tweeks 在代码隐藏上运行此操作,可能在PageLoad上运行
StringBuilder sb = new StringBuilder();
for(int i = 0 ; i < 3 ; i++)
sb.AppendFormat("{3}{{name: '{0}',data: {1} }}",
Names[i], Data[i],
i>0 ? "," : "" // this is render the comma "," after the first line
);
ScriptData.Text = sb.ToString();
并使用文本控件将它们放置在页面上的脚本上
$(function () {
$('#container').highcharts({
chart: {
type: 'bar'
},
title: {
text: 'Fruit Consumption'
},
xAxis: {
categories: ['Apples', 'Bananas', 'Oranges']
},
yAxis: {
title: {
text: 'Fruit eaten'
}
},
series: [
<asp:Literan id="ScriptData" Runat="server" EnableViewState="off" />
]
});
});?
这是我解决问题的方法,以防有人也需要 以下是JS函数:
function LoadChart() {
var Names = <%= this.javaSerial.Serialize(this.Names %>;
var Data = <%= this.javaSerial.Serialize(this.Data %>;
var options = {
chart: {
renderTo: 'container',
type: 'bar'
},
title: {
text: 'Fruit Consumption'
},
xAxis: {
categories: ['Apple', 'Banana', 'Orange']
},
yAxis: {
title: {
text: 'fruit eaten'
}
},
series: [{
name: Names[0],
data: [Data[0]]
}]
};
for (var i=1; i<Names.Length; i++)
{
options.series.push({
name: Names[i],
data: [Data[i]]
});
}
var chart = new Highcharts.Chart(options);
}
严格来说,这不是对您的问题的回答,但您是否考虑过使用助手库@KingCronus您的评论给了我一些想法,但我想知道这是否可以在asp.net 2.0中使用?因为我正在sharepoint中创建一个页面,sharepoint只接受asp.net 2.0页面。请尝试将编辑更改为正确的JSON:var serieTest='[{name:Jane,data:[1,0,4]},{name:John,data:[5,7,3]}];。然后:series:JSON.parseriestest。
public JavaScriptSerializer javaSerial = new JavaScriptSerializer();
public string[] Names = new string[] { "Jane", "John", "Mike" };
public string[] Data = new string[] { "1,2,3", "2,4,6", "3,6,9" }