6

だから私はMVCスタイルの設定を使用して設定されたチャートを持っています...

@(Html.Kendo().Chart<DIMVC.ViewModel.CompanyProduction>(Model.CompanyProduction)
     .Name("Chart")
     .Title("Files sent")
     .Legend(legend => legend
     .Position(ChartLegendPosition.Bottom)
 )
 .ChartArea(chartArea => chartArea
     .Background("transparent")
 )
 .SeriesDefaults(seriesDefaults =>
     seriesDefaults.Line().Style(ChartLineStyle.Smooth)
 )
.Series(series => { 
     series.Line(model => model.SentFiles).Name("Sent Files");
     ...  { lots more series added here }
}
.CategoryAxis(axis => axis
     .Categories(model => model.MonthDisplay)
     .Labels(labels => labels.Rotation(-90))
)
.ValueAxis(axis => axis.Numeric()
     .Labels(labels => labels.Format("{0:N0}"))
     .MajorUnit(10000)
)
.Tooltip(tooltip => tooltip
    .Visible(true)
    .Format("{0:N0}")
)
.Events(e => e
    .SeriesClick("onSeriesClick")
)

)

ページにはスライダーもあります。スライダーの値が変更されると、このイベントを処理します。

@(Html.Kendo().RangeSlider()
    .Name("yearRange")
    .Min(2000)
    .Max(DateTime.Today.Year)
    .SmallStep(1)
    .LargeStep(5)
    .Values(Model.MinYear, Model.MaxYear)
    .Events(e => e.Change("yearRangeChange"))
 )

JavaScript メソッド

function yearRangeChange(e)
{
     var url = "/FetchData/";

     $.ajax({
         type: "GET",
         url: url,
         data: { startYear: e.values[0], endYear: e.values[1] },
         dataType: "json",
         success: function (json) {

        $("#DINETChart").kendoChart({
            dataSource: {
               data: json
        }
    });

     var chart = $("#DINETChart").data("kendoChart");
    chart.refresh();
 }
 }); 
 }

チャートが更新されると、グリッドは空白になります。

json リクエストが正常に呼び出され、データが取得されます。しかし、チャートにデータが取り込まれた後、チャートは空白になります。

誰か提案がありますか?

* 編集 *

返された JSON のサンプルを追加する

"[{\"CompanyID\":1,\"Year\":2011,\"Month\":8,\"SentFiles\":1666,\"ReceivedFiles\":1632,\"SentData\":12803.674593292486,\"ReceivedData\":11908.047586546765,\"Note\":null,\"MonthDisplay\":\"Aug\",\"CompanyDisplay\":null},{\"CompanyID\":1,\"Year\":2013,\"Month\":10,\"SentFiles\":21004,\"ReceivedFiles\":20387,\"SentData\":157376.825542573,\"ReceivedData\":152878.87845794103,\"Note\":null,\"MonthDisplay\":\"Oct\",\"CompanyDisplay\":null},{\"CompanyID\":1,\"Year\":2013,\"Month\":4,\"SentFiles\":9989,\"ReceivedFiles\":9880,\"SentData\":74913.53277995327,\"ReceivedData\":75145.16331588416,\"Note\":null,\"MonthDisplay\":\"Apr\",\"CompanyDisplay\":null},{\"CompanyID\":1,\"Year\":2013,\"Month\":11,\"SentFiles\":25956,\"ReceivedFiles\":25249,\"SentData\":196155.8977337967,\"ReceivedData\":189320.44546897494,\"Note\":null,\"MonthDisplay\":\"Nov\",\"CompanyDisplay\":null}]"

これを追加する場合も指摘したいと思います

.DataSource(ds => ds.Read(read =>
    read.Action("FetchData", "Home", new { startYear = 2012, endYear = 2013 })
))

私のチャート設定では、これは page を使用せずにチャートにうまく入力されますModel。つまり、データはチャートに対して正しいです。

4

1 に答える 1