我已经尝试设置Telerik RadHTMLChart following this setup(包括指定XAxis / YAxis,Series等),我使用了this Telerik documentation (包括允许图表定义自己的参数,请参阅下面的标记)尝试动态设置数据源,但我无法显示图表。
单击某个按钮时,会删除在包装图形的div上执行display: none;
的类,然后调用generateGraph()
函数:
this.generateGraph = function () {
var newData = [];
for (var i = 0; i < 10; i++) {
var newPoint = {
"Value": 2 * i,
"Color": "Green"
}
newData.push(newPoint);
}
radGraph.set_dataSource(newData);
radGraph.repaint();
}
但发生了一些奇怪的事情:
radGraph.repaint()
上设置断点并手动运行radGraph.repaint()
命令,否则图表不会显示。有人可以帮帮我吗?我正在使用Telerik.Web.UI.dll版本2015.2.623.40。
这是标记:
<telerik:RadHtmlChart ID="radGraphChart" ClientIDMode="Static" runat="server">
<PlotArea>
<Series>
<telerik:LineSeries DataFieldY="Value" ColorField="Color" >
</telerik:LineSeries>
</Series>
</PlotArea>
</telerik:RadHtmlChart>
编辑:我已经找到了#1和#2问题(#1可能是剑道代码中的一个错误,它的_loadData()
函数有if(!u._isStockChart()){u._chartObject.refresh();}}else{u._chartObject.refresh();}
应该有一个refresh()
调用是redraw()
,我很确定......#2是我在某个地方犯了一个错字),但我仍然不知道如何添加多个系列'图表。
答案 0 :(得分:0)
我认为大部分都是。
我不确切知道究竟在哪里,但在Kendo函数中它没有redraw()
/ repaint()
/ refresh()
在它应该的地方,因为我第一次打电话给repaint()
正在加载数据,设置属性,等等,等等,但是_dataSourceChanged = false
并且实际上没有重绘,因此第二个repaint()
调用具有_dataSourceChanged = true
,然后进行重绘
标记应在<telerik:LineSeries>
标记中包含2个<Series>
标记,并且只有不同的DataFieldY
属性:
<telerik:RadHtmlChart ID="radGraphChart" ClientIDMode="Static" runat="server">
<PlotArea>
<Series>
<telerik:LineSeries DataFieldY="Value1">
</telerik:LineSeries>
<telerik:LineSeries DataFieldY="Value2">
</telerik:LineSeries>
</Series>
</PlotArea>
</telerik:RadHtmlChart>
然后,您可以通过执行以下操作引用在JavaScript中添加数据点: this.generateGraph = function(){ var newData = [];
for (var i = 0; i < 10; i++) {
var newPoint = {
"Value1": 2 * i,
"Value2": 3 * i
}
newData.push(newPoint);
}
radGraph.set_dataSource(newData);
radGraph.repaint();
radGraph.repaint();