Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用单选按钮、highcharts、vb.net从服务器获取数据_Javascript_Asp.net_.net_Vb.net_Highcharts - Fatal编程技术网

Javascript 使用单选按钮、highcharts、vb.net从服务器获取数据

Javascript 使用单选按钮、highcharts、vb.net从服务器获取数据,javascript,asp.net,.net,vb.net,highcharts,Javascript,Asp.net,.net,Vb.net,Highcharts,我以前使用highcharts从数据库中获取数据,但是因为它位于更新面板中,所以没有显示数据 <input class="test" name="ga" type="radio" value="a"> name</input> <input class="test" name="ga" type="radio" value="b"> last</input> <input class="test" name="ga" type="radio"

我以前使用highcharts从数据库中获取数据,但是因为它位于更新面板中,所以没有显示数据

<input class="test" name="ga" type="radio" value="a"> name</input>
<input class="test" name="ga" type="radio" value="b"> last</input>
<input class="test" name="ga" type="radio" value="c"> first</input>
问题是,我无法从服务器获取数据,因为当我刷新页面时,服务器不会加载数据,它只在javascript中调用数据。。我用谷歌搜索过这个,我觉得它与处于更新面板、使用重画方法或使用RegisterClientScriptBlock有关

这是我从msdn获得的关于RegisterClientScriptBlock的信息:

 Dim script As String
    script = _
    "function ToggleItem(id)" & _
    "  {" & _
    "    var elem = $get('div'+id);" & _
    "    if (elem)" & _
    "    {" & _
    "      if (elem.style.display != 'block') " & _
    "      {" & _
    "        elem.style.display = 'block';" & _
    "        elem.style.visibility = 'visible';" & _
    "      } " & _
    "      else" & _
    "      {" & _
    "        elem.style.display = 'none';" & _
    "        elem.style.visibility = 'hidden';" & _
    "      }" & _
    "    }" & _
    "  }"

    ScriptManager.RegisterClientScriptBlock( _
        Me, _
        GetType(Page), _
        "ToggleScript", _
        script, _
        True)

那么我的javascript代码是否在里面呢?

您可以在
更改
处理程序中进行一次AJAX调用(例如,使用jQuery),以获取必要的数据。在服务器端,您将返回JSON和一个或多个数组,并根据需要分配它们。由于您使用的是VB.NET,我猜您使用的是ASP.NET,所以请查看他们的文档。

首先,尝试将javascript代码放入
函数pageLoad(sender,args){}
中。这将确保javascript代码在部分回发完成时运行


接下来,您的RadioButton列表是否在UpdatePanel中?如果不是,则将AutoPostBack设为False,并将其指定为UpdatePanel的触发器。

我被告知,在vb中使用RegisterClientScriptBlock方法将有效。然后使用highchrts的重画,但是改变了javascript的功能,但问题是它将如何表现我以前从未使用过AJAX调用,但有人告诉我它可以与RegisterClientScriptBlock一起工作我从未使用过RegisterClientScriptBlock,所以我不能帮你。如果你在过去发现了一系列有用的文章(我已经转到ASP.NETMVC),你可能不需要从图表中获取相同的数据。。。我需要它从现有图表中添加数据,而不是删除序列。。所以我可以从vb代码中的vb.net代码调用它?没有,但是highchart容器div在更新面板中。看看我的eddited帖子,我想说的是,您已经将客户端代码放在jQuery document.ready中,它的缩写是
$(function(){})(
)。相反,将它放在
函数pageLoad(sender,args){}
中。这样,每次回发时,客户端代码都将执行。我不是说注册客户端ScriptBlock(用于从代码后面推送javascript)。另外,您是否已将radiobuttonlist添加为updatepanel的触发器?
$(function () {
var chart = new Highcharts.Chart({
    chart: {
        renderTo: 'container'
    }
});

$(".test").change(function() {
    var value = this.getAttribute("value");
    while (chart.series.length > 0) {
        chart.series[0].remove(true);
    }
    if (value == 'a') {
        chart.xAxis[0].update({categories: ['Jan', 'Feb', 'Mar']});
        chart.yAxis[0].setTitle({ text: "name" });

        chart.addSeries({
            name: 'Rainfall11',
            type: 'column',
            data:array(comes from vb.net)       
        });      
        chart.addSeries({
            name: 'Rainfall2',
            type: 'column',
            data: array2 (comes from vb.net)              
        });                      
        chart.addSeries({
            name: 'Rainfall3',
            type: 'column',
            color: '#FFA500',  
            data: array3 (comes from vb.net)             
        });
    } else if (value == 'b') {

        chart.yAxis[0].setTitle({ text: "first" });
    } else if (value == 'c') {
           chart.addSeries({
            name: 'Rainfall5',
            type: 'column',
            data:array5          
        });
        chart.addSeries({
            name: 'Rainfall6',
            type: 'column',
            data:array6
        });
    } else {
        alert("Error!");    
    }
 });});
 Dim script As String
    script = _
    "function ToggleItem(id)" & _
    "  {" & _
    "    var elem = $get('div'+id);" & _
    "    if (elem)" & _
    "    {" & _
    "      if (elem.style.display != 'block') " & _
    "      {" & _
    "        elem.style.display = 'block';" & _
    "        elem.style.visibility = 'visible';" & _
    "      } " & _
    "      else" & _
    "      {" & _
    "        elem.style.display = 'none';" & _
    "        elem.style.visibility = 'hidden';" & _
    "      }" & _
    "    }" & _
    "  }"

    ScriptManager.RegisterClientScriptBlock( _
        Me, _
        GetType(Page), _
        "ToggleScript", _
        script, _
        True)