我遇到问题,我需要使用Asp.net mvc在Kendo网格中设置kendo饼图。
我有一个网格,我想在客户端模板的一列中设置饼图。
我可以吗?如果是,如何?
TNX
答案 0 :(得分:3)
答案 1 :(得分:0)
尝试这样
@(Html.Kendo().Grid<Model>()
.Name("grid")
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(true)
.Model(model => model.Id(p => p.ID))
.Read(read => read.Action("method", "controller"))
)
.Pageable()
.Sortable()
.Scrollable()
.Events(e => e.DataBound("dataBound"))
.Filterable(ftb => ftb.Mode(GridFilterMode.Row))
.Columns(columns =>
{
columns.Bound(p => p.ID).ClientTemplate("<div class='chart'></div>");
})
)
和脚本是
function dataBound() {
var grid = this;
grid.tbody.find("tr[role='row']").each(function () {
var model = grid.dataItem(this);
$(this).find(".chart").kendoChart({
title: {
text: "Olympic Medals won by USA"
},
legend: {
visible: false
},
seriesDefaults: {
type: "bar",
stack: {
type: "100%"
}
},
series: [{
name: "Gold Medals",
data: [40, 32, 34, 36, 45, 33, 34, 83, 36, 37, 44, 37, 35, 36, 46],
color: "#f3ac32"
}, {
name: "Silver Medals",
data: [19, 25, 21, 26, 28, 31, 35, 60, 31, 34, 32, 24, 40, 38, 29],
color: "#b8b8b8"
}, {
name: "Bronze Medals",
data: [17, 17, 16, 28, 34, 30, 25, 30, 27, 37, 25, 33, 26, 36, 29],
color: "#bb6e36"
}],
valueAxis: {
line: {
visible: false
},
minorGridLines: {
visible: true
}
},
categoryAxis: {
categories: [1952, 1956, 1960, 1964, 1968, 1972, 1976, 1984, 1988, 1992, 1996, 2000, 2004, 2008, 2012],
majorGridLines: {
visible: false
}
},
tooltip: {
visible: true,
template: "#= series.name #: #= value #"
}
});
});
}
答案 2 :(得分:0)
我有特殊要求。在表格中创建单个水平列。我认为每个表有一个图表会有点过分,所以我自定义了网格组件。基于一个简单的Html表,使用一些CSS设置它并使用KendoUI将其设置为网格。
如果你想要一些非常具体的东西,这可能会有所帮助。
视觉示例:
这是一个有效的例子: http://embed.plnkr.co/Hy2u4d/