You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kendo饼图SeriesClick事件首次调用后失效问题求助

我看了你的代码,发现几个关键问题导致饼图的seriesClick事件首次调用后失效,咱们一步步来解决:

1. 语法错误导致代码执行中断

你的回调函数和柱状图函数里存在明显的语法错误,这些错误会让首次点击后JavaScript抛出异常,直接中断后续代码执行,自然就没法响应后续点击了:

  • onDb函数最后用了];,这是完全错误的闭合方式,应该替换成}来正确结束函数。
  • createChartForInterventions函数末尾多了一个多余的});,直接删掉这个无效的闭合符号即可。

2. 柱状图函数的参数与元素选择器问题

你的柱状图函数存在两个致命问题:

  • 函数定义要求传入dataForInter参数,但调用时createChartForInterventions();完全没传参,这会导致柱状图初始化时数据源为空,直接报错。
  • 函数里用了全局的chartID变量,很容易和其他组件的选择器冲突,应该改成像Grid函数那样接收具体的元素参数。

修正后的柱状图函数:

function createChartForInterventions(chartElement, dataForInter) {
    chartElement.kendoChart({
        legend: { visible: false },
        series: [{
            data: dataForInter,
            type: "column",
            color: "#FDB45C",
            field: "cp_type_present",
            categoryField: "turbineName"
        }]
    });
}

3. 修正完整的调用逻辑

确保调用时给柱状图传递正确的元素和数据源,同时修正所有语法错误:

$.ajax({
    dataType: "json",
    type: "POST",
    url: "@Url.Action("faultstatCrewPresentIntervetion","Dashbrd")",
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify({ 
        "dtFrom": dtDrpVals.fromDate, 
        "dtTo": dtDrpVals.toDate 
    }),
    success: function (result) {
        // 修正后的回调函数
        function onDb(e) {
            createDynamicGrid($("#gridProAvail"), result.interInprog, clmns);
            // 传入柱状图的DOM元素和对应数据源(假设result里有columnChartData字段)
            createChartForInterventions($("#columnChart"), result.columnChartData);
        }
        // 初始化饼图
        pieChartForInterventions($("#pieChart"), result.nbr_ofCPtype, onDb);
    }
});

额外注意点

  • 确保Grid、饼图、柱状图的目标DOM元素是完全独立的(比如分别对应#gridProAvail、#pieChart、#columnChart),避免组件初始化时互相覆盖。
  • Kendo UI组件重新初始化时会自动销毁旧实例,但只要目标元素不同,就不会影响饼图的事件绑定。

修正这些问题后,seriesClick事件应该就能正常响应每一次饼图点击了。

内容的提问来源于stack exchange,提问作者user9704250

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:43:17