Asp.net mvc 4 如何设置动态堆叠柱状图的类别标签

Asp.net mvc 4 如何设置动态堆叠柱状图的类别标签,asp.net-mvc-4,kendo-dataviz,Asp.net Mvc 4,Kendo Dataviz,我正在建立一个堆叠柱形图。我不知道进入其中的系列的数量,所以我使用foreach来构建每个系列。我想要每个系列的类别标签。一般来说,对于类似这样的东西,我会使用categoryexpression,但不知道如何用我正在构建的方式来实现它。下面是不带标签的外观,仅供代码参考 任何帮助都将不胜感激 @(Html.Kendo().Chart() .Name("chart") .Theme("flat") .Title("Issues Waterfall") .DataSource(ds =&g

我正在建立一个堆叠柱形图。我不知道进入其中的系列的数量,所以我使用foreach来构建每个系列。我想要每个系列的类别标签。一般来说,对于类似这样的东西,我会使用categoryexpression,但不知道如何用我正在构建的方式来实现它。下面是不带标签的外观,仅供代码参考

任何帮助都将不胜感激

@(Html.Kendo().Chart()

.Name("chart")

.Theme("flat")

.Title("Issues Waterfall")

.DataSource(ds => ds

    .ServerOperation(false)

)

.Series(series =>

{

    series.Column(new double[] { 100 }).Name("Total").Color("Blue").Stack("Total");



    foreach (var resp in Model.listResponsibleDowntime)

    {

        series.Column(new double?[] { resp.percent_pad }).Name(resp.resp_name).Color("White").Opacity(0).Labels(false).Tooltip(false).Stack(resp.resp_name);

        series.Column(new double?[] { resp.percent_downtime }).Name(resp.resp_name).Color(resp.resp_color).Labels(lables => lables.Format("{0:n2}%").Visible(true).Position(ChartBarLabelsPosition.OutsideEnd)).Stack(resp.resp_name);

    }



    series.Column(new double?[] { Model.oee }).Name("Actual").Color("Green").Stack("Actual").Labels(lables => lables.Format("{0:n2}%").Visible(true).Position(ChartBarLabelsPosition.OutsideEnd));



})

.CategoryAxis(axis => axis

    .MajorGridLines(lines => lines.Visible(false))

    .Labels(model => model

        .Rotation(0)

        .Visible(true)

    )

    //.Categories(Model.listCategories)

)

.Legend(legend => legend

    .Position(ChartLegendPosition.Top)

    .Margin(20, 50, 20, 50)

    .Visible(false)

)

.ValueAxis(axis => axis

    .Numeric()

    .Min(0)

    .Max(100)

    .Labels(labels => labels.Format("{0:n0}%"))

)

.Tooltip(tooltip => tooltip

    .Visible(true)

    .Template("#= series.name #: #= kendo.format('{0:n2}', value) #")

)

我知道它很旧,但这可能会帮助下一个人,因为Telerik的文档不会

在foreach中,需要向列生成器传递IEnumerable类,然后告诉它哪个字段是类别,哪个字段是值:

    public class KendoStackedColumnModel
    {
        public string StackName { get; set; }
        public string Colour { get; set; }

        public IEnumerable<KendoColumnModel> Columns { get; set; }

        public class KendoColumnModel
        {
            public decimal Value { get; set; }
            public string Category { get; set; }
        }

    }
    series.Column(stacked.Columns).CategoryField("Category").Field("Value").Name(stacked.StackName).Color(stacked.Colour);