Hello,
I try to implement dynamic change of series in chart by javascript, but they just disappear.
Build chart ASP.NET MVC Razor:
<
div
id
=
"chartWrapper"
><
br
> @{<
br
> var x = new List<
object
>();<
br
> x.Add(new { Dt = DateTime.Parse("2017-01-01 01:00:00.000"), Value = 1 });<
br
> x.Add(new { Dt = DateTime.Parse("2017-01-01 02:00:00.000"), Value = 3 });<
br
> x.Add(new { Dt = DateTime.Parse("2017-01-01 03:00:00.000"), Value = 2 });<
br
> x.Add(new { Dt = DateTime.Parse("2017-01-01 04:00:00.000"), Value = 1 });<
br
> var y = new List<
object
>();<
br
> y.Add(new { Dt = DateTime.Parse("2017-01-01 01:00:00.000"), Value = 0 });<
br
> y.Add(new { Dt = DateTime.Parse("2017-01-01 02:00:00.000"), Value = 3 });<
br
> y.Add(new { Dt = DateTime.Parse("2017-01-01 02:10:00.000"), Value = 1 });<
br
> y.Add(new { Dt = DateTime.Parse("2017-01-01 02:20:00.000"), Value = 3 });<
br
> y.Add(new { Dt = DateTime.Parse("2017-01-01 02:30:00.000"), Value = 2 });<
br
> y.Add(new { Dt = DateTime.Parse("2017-01-01 03:00:00.000"), Value = 3 });<
br
> y.Add(new { Dt = DateTime.Parse("2017-01-01 04:00:00.000"), Value = 1 });<
br
> var z = new List<
object
>();<
br
> z.Add(new { Dt = DateTime.Parse("2017-01-01 01:00:00.000"), Value = 6 });<
br
> z.Add(new { Dt = DateTime.Parse("2017-01-01 02:00:00.000"), Value = 1 });<
br
> z.Add(new { Dt = DateTime.Parse("2017-01-01 02:05:00.000"), Value = 2 });<
br
> z.Add(new { Dt = DateTime.Parse("2017-01-01 02:10:00.000"), Value = 3 });<
br
> z.Add(new { Dt = DateTime.Parse("2017-01-01 02:15:00.000"), Value = 4 });<
br
> z.Add(new { Dt = DateTime.Parse("2017-01-01 02:20:00.000"), Value = 5 });<
br
> z.Add(new { Dt = DateTime.Parse("2017-01-01 02:25:00.000"), Value = 4 });<
br
> z.Add(new { Dt = DateTime.Parse("2017-01-01 02:30:00.000"), Value = 3 });<
br
> z.Add(new { Dt = DateTime.Parse("2017-01-01 03:00:00.000"), Value = 2 });<
br
> z.Add(new { Dt = DateTime.Parse("2017-01-01 04:00:00.000"), Value = 1 });<
br
> }<
br
> <
div
class
=
"demo-section k-content wide"
><
br
> @(Html.Kendo().Chart()<
br
> .Name("chartTest")<
br
> .HtmlAttributes(new { style = "height: 550px; width: 700px; z-index: 0;" })<
br
> .Title("test")<
br
> .Legend(legend => legend.Position(ChartLegendPosition.Top))<
br
> .SeriesDefaults(seriesDefaults => seriesDefaults.Column().Stack(true))<
br
> .PlotArea(area => area.Background("#f0f0f0").Opacity(0.1))<
br
> .Series(series =><
br
> {<
br
> series.Line(x).CategoryField("Dt").Field("Value").Name("X").Color("#F00").DashType(ChartDashType.Solid).MissingValues(ChartLineMissingValues.Interpolate).Markers(m => m.Visible(false));<
br
> series.Line(y).CategoryField("Dt").Field("Value").Name("Y").Color("#0F0").DashType(ChartDashType.Solid).MissingValues(ChartLineMissingValues.Interpolate).Markers(m => m.Visible(false));<
br
> series.Line(z).CategoryField("Dt").Field("Value").Name("Z").Color("#00F").DashType(ChartDashType.Solid).MissingValues(ChartLineMissingValues.Interpolate).Markers(m => m.Visible(false));<
br
> })<
br
> .CategoryAxis(axis => axis<
br
> .Date()<
br
> .BaseUnit(ChartAxisBaseUnit.Minutes)<
br
> .Labels(labels => labels.DateFormats(formats => formats.Hours("HH:mm")).Rotation(-45).Step(60))<
br
> .MinorGridLines(lines => lines.Visible(false))<
br
> .MinorTicks(t => t.Step(60).Visible(false))<
br
> .MajorGridLines(lines => lines.Step(60).Visible(true))<
br
> .MajorTicks(t => t.Step(60).Visible(true))<
br
> .Crosshair(c => c.Visible(true))<
br
> .PlotBands(bands =><
br
> {<
br
> bands.Add().From(DateTime.Parse("2017-01-01 01:00:00.000")).To(DateTime.Parse("2017-01-01 02:08:00.000")).Color("#b0e1fc").Opacity(0.2);<
br
> })<
br
> )<
br
> .ValueAxis(axis => axis<
br
> .Numeric()<
br
> .Line(line => line.Visible(true))<
br
> .MinorGridLines(lines => lines.Visible(false))<
br
> .MinorTicks(t => t.Step(2).Visible(false))<
br
> .MajorGridLines(lines => lines.Step(1).Visible(true))<
br
> .MajorTicks(t => t.Step(1).Visible(true))<
br
> )<
br
> )<
br
> <
br
> </
div
><
br
> </
div
>
Javascrip that erase series:
var chart = $("#chartTest").data("kendoChart");<
br
>chart.refresh();<
br
>
In my case chart.refresh(); - just clear data, I try to change chart.options.series to new data with the same result, there is no series after refresh.