加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – Telerik MVC Chart ClientEvents.OnDataBinding

发布时间:2020-12-16 03:25:22 所属栏目:asp.Net 来源:网络整理
导读:我想显示特定民意调查问题的民意调查结果. 单击问题列表时,我想根据所选的questionId将我的图表与查询绑定. 所以我的计划是; 1.从选定的问题行中获取问题.没关系. 在我的图表上定义ClientEvents.OndataBinding事件.所以我能够 传递问题与; function onChartD
我想显示特定民意调查问题的民意调查结果.
单击问题列表时,我想根据所选的questionId将我的图表与查询绑定.

所以我的计划是;
1.从选定的问题行中获取问题.没关系.

>在我的图表上定义ClientEvents.OndataBinding事件.所以我能够
传递问题与;

function onChartDataBinding(e){
????????e.data = $.extend(e.data,{questionId:questionId});
????}
>使用$(‘#ChartPollResults’).data(‘tChart’).rebind();在问题列表网格行选定的事件.

当我根据第一个网格选定行进行第二次网格绑定时,此方案有效.
但似乎图表控件上没有ClientEvents.OnDataBinding事件.
Chart控件不支持“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" })
                    )

我的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的问题的结果没有问题.

但是我无法将问题传递给图表.

提前致谢.

解决方法

首先,我立即注意到的一件事是你在ActionResult参数中将questionId设置为0.我实际上刚刚修改了一张我已经运行并运行的图表

new { questionID = 0}

作为我的Ajax select语句的附加参数,它传递得很好.

至于传递参数,您可以考虑在网格选择上使用POST到服务器并以这种方式传递参数.我知道这里可能不太理想,但理论上你可以填充该帖子中的Chart,或者只是设置一个ViewData条目来包含你正在寻找的特定questionID.

我还注意到你已经将这个提交到了Telerik forums,并且从响应那里看起来上面的方法可能实际上工作得很好,或者你可以使用那里提到的方法(带有ajax调用的局部视图).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读