Я хочу показать результат опроса по конкретному вопросу опроса. Когда был выбран список вопросов, я хочу связать свою диаграмму с запросом в соответствии с выбранным questionId.
Итак, мой план был; 1. получить questionId из выбранной строки вопроса. все в порядке.
определение события ClientEvents.OndataBinding на моем графике. Так что я смогу передать questionId с;
функция 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 на диаграмме.
Но я не могу передать questionId в диаграмму.
Заранее спасибо.