我想顯示特定投票問題的投票結果。 當問題列表單擊時,我想根據選定的questionId將我的圖表與查詢綁定。Telerik MVC圖表ClientEvents.OnDataBinding
所以我的計劃是; 1.從選定的問題行中獲得questionId。沒關係。
在我的圖表上定義ClientEvents.OndataBinding事件。所以我可以通過 傳遞questionId;
function onChartDataBinding(e){ e.data = $ .extend(e.data,{questionId:questionId}); }
使用
$('#ChartPollResults').data('tChart').rebind();
問題列表網格行選擇事件。
這種情況下,當我有第二個網格綁定根據第一個網格選定的行。 但圖表控件上似乎沒有ClientEvents.OnDataBinding事件。 圖表控件上不支持「rebind()
」方法。
我使用的圖表如下。
@(Html.Telerik().Chart<QuestionResult>()
.Theme("WebBlue")
.Name("ChartPollResults")
.Title("Poll Question Choice Number vs. Choice Count")
.Legend(legend => legend.Position(ChartLegendPosition.Bottom))
.Series(series =>
{
series.Bar("ChoseCount").Name("Choice Count").Gap(5);
})
.CategoryAxis(axis => axis.Categories(o => o.ChoiceNumber))
.DataBinding(dataBinding => dataBinding.Ajax().Select("_PollResultChartBinding", "Poll", new { questionId = 0 }))
.HtmlAttributes(new { style = "width: %100px; height: 270px" })
)
我的控制器綁定方法;
public ActionResult _PollResultChartBinding(int questionId = 0)
{
//questionId = 3;
if (!ModelState.IsValid || questionId == 0)
return Json(new List<QuestionResult>());
PollQuestionDefinition pollQuestion = service.Get(questionId);
List<PollAnswer> pollAnswers = service.GetPollAnswersByQuestion(questionId);
PollQuestionResultUI result = new PollQuestionResultUI(pollQuestion, pollAnswers);
return Json(result.Results);
}
當我註釋//questionId = 3;
i行可以看到在圖與沒有問題室內用ID = 3的問題的結果。
但我不能通過questionId圖表。
在此先感謝。