1

我在创建 POCO 类以使用 Kendo-DataViz 时遇到一个问题。

我们想使用 MVC 包装器创建堆叠图表,并且在 Kendo 的示例中它显示了一些静态值,例如

     .Column(new int[] { 1100941, 1139797, 1172929, 1184435, 1184654 }).Stack(true)
     .Column(new int[] { 810169, 883051, 942151, 1001395, 1184654  }).Stack(true)

现在这将创建 5 个条形图,每个条形图都堆叠有一个数据,并且 int 数组中的每个值对应于不同的条形图,并且所有数组中的每个索引对应于相同的条形图

即: 1100941810169对应于第一个条bar1

那么如何将这些静态数据建模成 POCO 类并填充数据。

我创建了如下 POCO

    public class TroubleFound
    {
    //Service center Name for which trouble is found
    public string ServiceCenterName { get; set; }
    //Which type of trouble is found
    public string TroubleFoundName { get; set; }
    //total count of trouble found
    public List<int> TroubleFoundCount { get; set; }
    }

但它不起作用,因为它为每个栏创建了一列,而不是在单个栏上堆叠

    series.Bar(data.TroubleFoundCount) 

那么如何创建 POCO 并根据 Kendo-Dataviz 填充它

请参阅http://demos.kendoui.c​​om/dataviz/bar -charts/stacked-bar.html了解我真正想要开发的内容。

4

1 回答 1

0

我最近不得不做一些非常相似但使用列的事情。我相信您可以将系列类型从列切换到栏,而无需进行任何其他更改。这是我们使用的模型:

public class KendoStackedColumnChartModel
{
    public string Title { get; set; }

    public IEnumerable<KendoStackedColumnModel> StackedColumns { get; set; }

    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(series =>
        {
            foreach (WebUI.Models.KendoStackedColumnChartModel.KendoStackedColumnModel stacked in Model.StackedColumns)
            {
                series.Column(stacked.Columns).CategoryField("CategoryLabel").Field("Value").Name(stacked.StackName).Color(stacked.Colour);
            }
        } 
    )
    .SeriesColors(new string[] { "#20BDFF", "#84DAFF", "#FFCD8A", "#FE9915", "#FF6633" })

希望这可以帮助其他人节省一些时间...

于 2014-05-07T00:56:46.990 回答