剑道网格中的剑道图表

时间:2014-07-20 07:56:19

标签: kendo-ui kendo-grid kendo-chart

我遇到问题,我需要使用Asp.net mvc在Kendo网格中设置kendo饼图。

我有一个网格,我想在客户端模板的一列中设置饼图。

我可以吗?如果是,如何?

TNX

3 个答案:

答案 0 :(得分:3)

请参阅telerik上的以下论坛,其中提供了一个jsfiddle样本以供您查找

Telerik Forum Link

Sample JS Fiddle

答案 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将其设置为网格。

如果你想要一些非常具体的东西,这可能会有所帮助。

视觉示例: Custom Bars in a Kendo Grid

这是一个有效的例子: http://embed.plnkr.co/Hy2u4d/