尝试使用高级javascript代码将RegisterClientScriptBlock实现为我的vb.net代码。
到目前为止,我有这个。 Dim script As String
script = _
"var chart = $('#container1').highcharts();" & _
"chart.redraw();"
ScriptManager.RegisterClientScriptBlock( _
Me, _
GetType(Page), _
"container1", _
script, _
True)
我需要刷新数据。
我正在尝试使用上述方法使用我的数组重新获取数据:
hidden.Value = arrayJson
hidden1.Value = arrayJson1
hidden2.Value = arrayJson2
hidden3.Value = arrayJson3
hidden4.Value = arrayJson4
hidden5.Value = arrayJson5
hidden6.Value = arrayJson6
hidden7.Value = arrayJson7
不确定如何将其链接
答案 0 :(得分:1)
我不熟悉VB,但您可以使用与Java相似的方法:
请参阅:http://jsfiddle.net/avitry/5bZ6n/2/
var chartList = new Array();
function newChart(properties, cid) {
$("#container").append("<div id ='" + cid + "' class='chart'></div>");
var jprops = properties.data; // adapt to your data storage
var defaultOptions = {
chart: {
renderTo: cid,
},
plotOptions: {
line: {
enableMouseTracking: true,
allowPointSelect: true
}
}
};
// Merge options from the properties object provided and defaultOptions
$.extend(jprops, defaultOptions);
// Create chart
var nChart = new Highcharts.Chart(jprops);
// Add to the list
chartList[cid] = nChart;
}
// Remove all charts and empty the container
function clear() {
chartList.length = 0;
$("#container").empty();
}
// Redraw this chart
function refresh(cid) {
chartList[cid].redraw();
}
3。调用javascript包装函数 您应该从代码中调用“newchart(ChartDataObject,String / id)”:
// Call newChart(json object, string) from your code
// This is called automatically onload for this demo
$(function () {
newChart({
data: {
chart: {
type: 'line',
inverted: true
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
series: [{
data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
}]
}
}, "chart-1");
refresh("chart-1");
//clear();
});
您基本上将json数据传递给函数newChart(),该函数负责调用Highcharts函数并设置默认选项。这样可以更轻松地在浏览器中设计页面,并从代码中删除样板。
如果我在小提琴中生成一个对象太难了,你可以根据需要添加任意数量的辅助函数,使用字符串id来引用你的图表对象:newChart(“chart1”); setTitle(“chart1”, “我的标题”),setData(“[1,2,3]”)等等。
.Net框架内置了Json序列化程序:http://msdn.microsoft.com/en-us/library/bb412179.aspx。您将有更好的机会使用现有的json序列化器。
阿兰
答案 1 :(得分:1)
更简单的方法可能是使用包装到Highcharts,例如http://dotnethighcharts.codeplex.com/
答案 2 :(得分:1)
使用RegisterClientScriptBlock
need <script>
tags传递的脚本:
Dim script As String
script = _
"<script type='text/javascript'>var chart = $('#container1').highcharts();" & _
"chart.redraw();</script>"
ScriptManager.RegisterClientScriptBlock( _
Me, _
GetType(Page), _
"container1", _
script, _
True)