ViewModel を返すアクション メソッドを呼び出すために jquery ajax を使用していますが、Telerik チャートを更新して返されたデータを表示するにはどうすればよいですか?
これが私がこれまでに持っているものです:
Javascript:
<script type="text/javascript">
$(document).ready(function () {
$(".GenerateCharts").live('click', function () {
$("#imgprogress").css("display", "block");
var monthVar = $("#chartMonth").val();
var yearVar = $("#chartYear").val();
//************************************
$.ajax({
type: "POST",
url: '@Url.Action("MyCharts", "Charts")',
data: JSON.stringify({ selectedMonth: monthVar, selectedYear: yearVar, chartId: 1 }),
success: function () {
$("#TargetChart").data("tChart").refresh(); // <-- Didn't work!
},
dataType: "json",
contentType: "application/json"
});
$("#imgprogress").css("display", "none");
});
});
</script>
テレリックチャート:
@(Html.Telerik().Chart(Model.QueueTimeViewModel.QueueTimeMonth)
.Name("TargetChart")
.Title("Chart[1]")
.Legend(legend => legend.Position(ChartLegendPosition.Bottom))
.Series(series =>
{
series.Column(model => model.ImmigrationTime).Name(APMS.Resources.InspectionReports.Resource.ImmigrationAverage).Labels(label => label.Visible(true)).Color("#00ff00");
series.Column(model => model.TransitTime).Name(APMS.Resources.InspectionReports.Resource.TransitAverage).Labels(label => label.Visible(true)).Color("#FF0000");
series.Column(model => model.StaffTime).Name(APMS.Resources.InspectionReports.Resource.StaffAverage).Labels(label => label.Visible(true)).Color("#F09800");
series.Column(model => model.TargetTime).Name(APMS.Resources.InspectionReports.Resource.Target).Labels(label => label.Visible(true)).Color("#0000ff");
})
.CategoryAxis(axis => axis
.Categories(" ")
.Line(line => line.Visible(true))
.Labels(labels => labels.Padding(0, 0, 0, 0)))
.ValueAxis(axis => axis
.Numeric().Labels(labels => labels.Format("{0} min")))
.Tooltip(tooltip => tooltip
.Visible(true)
.Format("{0}")
.Template("<#= series.name #>: <#= value #> min"))
.HtmlAttributes(new { style = "width: 600px; height: 400px; z-index:-1;" }))