Я хочу показать результат опроса по конкретному вопросу опроса.
Когда щелкнул список вопросов, я хочу связать свою диаграмму с запросом в соответствии с выбранным идентификатором вопроса.
Итак, мой план был;
1. получить вопрос от выбранной строки вопроса. все в порядке.
определение события ClientEvents.OndataBinding на моем графике. Так что я бы смог
передать вопрос с;
функция onChartDataBinding (e) {
e.data = $ .extend (e.data, {questionId: questionId});
}
с использованием $('#ChartPollResults').data('tChart').rebind();
в строке списка вопросов выбранного события.
Этот сценарий работает, когда у меня есть вторая привязка сетки в соответствии с выбранной строкой первой сетки.
Но, похоже, в элементе управления диаграммы событие ClientEvents.OnDataBinding отсутствует.
И метод "rebind()
" не поддерживается в элементе управления Chart.
Таблица управления, которую я использую, приведена ниже.
@(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" })
)
Метод привязки My Controller;
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;
строку, я могу видеть результаты для вопроса с Id = 3 на графике без проблем.
Но я не могу передать вопрос в диаграмму.
Заранее спасибо.