我尝试过设置Telerik RadHTMLChart 按照这个设置 (包括指定XAxis/YAxis、Series等),我使用了这是Telerik文档 (包括允许图表定义自己的params,请参阅下面的标记)来动态设置数据源,但无法让图表显示。
当单击按钮时,它会删除一个类,该类在包装图形的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()调用be redraw(),我很确定. #2是在某个地方出错了),但我仍然不知道如何在图表中添加多个系列。
发布于 2016-08-24 20:38:08
我想出了大部分的办法。
1+ 2:
我不知道具体在哪里,但在Kendo函数中,它并不是在应该在什么地方执行redraw()/repaint()/refresh(),因为我对repaint()的第一个调用是加载数据、设置属性、blah、blah,但是有_dataSourceChanged = false,而不是实际重绘,所以第二个repaint()调用有_dataSourceChanged = true,然后重绘。
3:
标记应该在<telerik:LineSeries>标记中包含两个<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();https://stackoverflow.com/questions/39131697
复制相似问题