我找到了一个链接,该链接解释了当用户单击楔形时如何分解饼图部分(http://jsfiddle.net/derickbailey/FXs6b/) 但它对我不起作用。据我所知,它似乎没有更新绑定到图表的explodeFiled 的数据源字段。单击饼图部分时会调用 createChart() 函数,但它不会分解该部分。该示例运行良好,但如果我尝试将其应用于我自己的代码,则不行。我还有一个连接到同一个数据源的剑道网格。网格是可编辑的,如果我“检查”记录的 Exploded 字段,饼图会爆炸。我还删除了网格,认为可能附加到同一数据源的 2 个控件导致了问题,但这也不起作用。谁能看到我的代码有什么问题?你可以在这里看到我的代码示例:http: //jsfiddle.net/ihatemash/d5yR7/
我的类包含要在图表中显示的数据:
public partial class GetTotals_Result
{
public Nullable<int> Total { get; set; }
public int PETypeID { get; set; }
public string Description { get; set; }
public bool Exploded { get; set; }
}
我的cshtml文件中的代码:
var mdl = @Html.Raw(Json.Encode(Model));
var tempcontext = new kendo.data.DataSource(
{ data: mdl });
function createChart() {
$("#piechart").kendoChart({
title: {
position: "bottom",
text: "Totals Pie Chart"
},
dataSource: tempcontext,
series: [{
type: "pie",
field: "Total",
categoryField: "Description",
explodeField: "Exploded",
labels: { visible: true},
}],
seriesClick: function(e){
$( e.sender.dataSource.options.data ).each( function ( i, item ) {
if ( item.Description != e.category )
{
item.Exploded= false;
}
else
{
item.Exploded= true;
}
} );
createChart();
}
});
}
setTimeout(function() {
// Initialize the chart with a delay to make sure
// the initial animation is visible
createChart();
$("#example").bind("kendo:skinChange", function(e) {
createChart();
});
}, 400);