Javascript 使用单选按钮、highcharts、vb.net从服务器获取数据
我以前使用highcharts从数据库中获取数据,但是因为它位于更新面板中,所以没有显示数据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"
<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)