刷新数据vb

时间:2013-07-05 09:43:15

标签: javascript asp.net vb.net highcharts

尝试使用高级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

不确定如何将其链接

3 个答案:

答案 0 :(得分:1)

我不熟悉VB,但您可以使用与Java相似的方法:

  1. 创建一个包含jquery 1.7或更高版本和hightcharts
  2. 的plaholder HTML页面
  3. 包含一些可以轻松与您的代码交互的包装javascript:
  4. 请参阅: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)