从Javascript

时间:2016-10-26 13:14:59

标签: kendo-ui kendo-chart

我在asp.net中有以下Kendo.Chart,我需要在刷新图表数据时更改Step值。

e.g。

。步骤(8)

。步骤(0)

我该怎么做?

@(Html.Kendo().Chart<GenericDateTimeValueDataPoint>()
                              .Name("trendchart_" + location.LocationId)
                              .Legend(legend => legend.Visible(false))
                              .ChartArea(chartArea => chartArea.Background("transparent")
                                  .Height(276))
                              .AutoBind(false)
                              .DataSource(ds => ds.Read(read => read.Action("ProfileTrend", "Chart")
                                  .Data(@<text>function (){ var selectedTimespan = $('#duration option:selected').val(); var startDateTime = $('#startDateTimePicker').val(); var endDateTime = $('#endDateTimePicker').val() ; return { locationGuid: '@location.LocationId', timespan: selectedTimespan, startDateTime: startDateTime, endDateTime: endDateTime, timeZoneOffset: window.currentTimeZoneOffsetInHours }}</text>))
                                  .Events(ev => ev.RequestStart("viewModel.utilisationDataRequestStarted")
                                      .RequestEnd("uViewModel.utilisationDataLoaded")))
                              .SeriesDefaults(series => series.Column().Overlay(ChartBarSeriesOverlay.None))
                              .Series(series => series.Column(model => model.CollectedValue, categoryExpression: model => model.DateTimeFormattedString)
                                  .Gap(0.3)
                                  .Name("Valve Open")
                                  .Color(Lookups.GetColourAsHex(Colours.SilverGrey)))
                              .CategoryAxis(axis => axis.MajorGridLines(lines => lines.Visible(false))
                                  .Labels(labels => labels.Format("{0:d}").Step(8))
                                  .Categories()
                                  .Title(title => title.Text(DisplayText.Get("Time"))))
                              .ValueAxis(axis => axis.Numeric().Labels(labels => labels.Format("{0}%")).Line(line => line.Visible(true)).Min(0).Max(100).Title(title => title.Text(DisplayText.Get("Utilisation")))).Tooltip(tooltip => tooltip.Visible(true).Template("#=dataItem.DateTimeFormattedString#<br />#= kendo.format('{0:N2}',value) #%")))

1 个答案:

答案 0 :(得分:1)

您可以向dataBound事件添加回调(每次数据绑定到图表时都会触发),然后在此回调中您可以更改/设置step属性。但是您需要从剑道图表中调用refresh方法才能应用更改。

代码类似于以下内容:

//Your code
.Events(ev => ev.RequestStart("viewModel.utilisationDataRequestStarted")
.RequestEnd("uViewModel.utilisationDataLoaded")))
.DataBound("onDataBound")))
//Your code

//Javascript
function onDataBound(arg) {
    var chart = $("ELEMENT_ID").getKendoChart();
    chart.options.axisDefaults.labels.step = 2;
    chart.refresh();
}

希望它对你有所帮助。

相关问题