2 つのアクションを持つコントローラーと 2 つのチャートを持つビューがあります。最初のコントローラーはビュー上に直接あり、2 つ目は以下のような部分ビューです。
<div class="chart" style="margin-top: 10px;">
@(Html.Telerik().Chart(Model)
.Name("CustomerCount")
.Title(title => title.Text("TotalCustomersPerHour"))
.Legend(settings => settings.Position(ChartLegendPosition.Bottom))
.Series(series => series.Line(p => p.CustomerCount.Total).Name("TotalCustomersPerHour"))
.CategoryAxis(a => a.Categories(p => p.CustomerCount.Intervalo).Labels(l => l.Rotation(-40))).Theme("vista")
.Tooltip(true)
.HtmlAttributes(new { style = "height: 300px;" })
.DataBinding(dataBinding => dataBinding.Ajax()
.Select("CustomerCountData", "Indicators", new
{
storeId = "TR_001",
startDate = DateTime.Today,
endDate = DateTime.Today.AddDays(10)
}))
.ClientEvents(b => b.OnDataBound("OnCustomerCountDataBound"))
)
</div>
<div class="chart" style="margin-top: 10px;">
@Html.Partial("_ChartTest")
</div>
最初のアクションは、Telerik Chart Ajax 呼び出しによって呼び出されます。それが完了すると、ViewBags を使用して部分ビュー チャートにデータを入力するために、OnDataBound イベントによって別のアクションを呼び出します。
function OnCustomerCountDataBound(e) {
$.ajax({
type: "POST",
url: "Indicators/ChartTest",
data: { retailStoreId: "TR_001"},
});
}
部分ビューをデバッグし、ViewBag 値を取得できますが、結果がページに表示されません。
@(Html.Telerik().Chart()
.Name("TimeOfPermanency")
.Title(title => title.Text(TrackerMessages.TimeOfPermanencyPerArea))
.Legend(settings => settings.Position(ChartLegendPosition.Bottom))
.Series(series =>
{
if (ViewBag.Series != null)
{
foreach (var area in ViewBag.Series)
{
series.Column(area.Data).Name(area.Name);
}
}
})
.CategoryAxis(axis =>
{
if (ViewBag.Categories != null)
{
axis.Categories(ViewBag.Categories);
}
})
.Tooltip(true)
.HtmlAttributes(new { style = "height: 300px;" })
.ClientEvents(b => b.OnDataBound("OnTimeOfPermanency"))
)
2 番目のグラフに結果が表示されない理由を知っている人はいますか?
ありがとう!