首页 > 解决方案 > Telerik Kendo Chart : 如何将图表绑定到字符串类型

问题描述

我一直在挣扎,我找不到任何与此相关的东西。我是剑道的新手,遗憾的是我找不到任何可以帮助我的问题、文档、论坛和所有这些的东西:他们根本没有帮助

情况:我的 ASP .NET 应用程序中有一个视图模型。我正在尝试用一种称为“类型”的属性来制作图表。这个属性代表一种数据——比如说水果,比如“香蕉”、“苹果”等。这种类型当时只包含并且只有一个类型。它不能包含“苹果和香蕉”之类的东西。它也总是一个字符串。这种特权是更大模型的一部分。但我只对这个感兴趣

现在,我喜欢做的事情:我想用剑道制作一张图表,从那个礼节开始。这意味着,我必须将我的图表绑定到我的模型,然后,它将能够知道其中一些类型被使用了多少次。例如,如果我有三个对象:名称:“Mjuzl”类型:“土豆”

名称:“Uijqf” 类型:“Apple”

名称:“Zjli”类型:土豆”

我希望我的 char 计算我的模型使用了两次 Potato 类型和一次使用 Apple 类型。 我知道如何获取包含使用我的模型的所有对象的数据源。(我之前已经使用过 Kendo Grid,但它非常简单)我现在的问题是我不知道 - 而且我无法找到任何 - 如何在图表中实际显示我想要的内容。我再说一遍,它们是字符串。我知道如何获取我的数据源。我不知道如何真正展示我想要展示的东西。(我应该使用列吗?部分?我不知道)

我是否需要从我的控制器构建一个 JSON 来要求数据库计数?剑道自己能做到吗?我很迷茫,我不知道剑道实际上在等待什么来使我的图表正常工作。该文档根本没有帮助。我已经研究了一段时间,我还没有找到任何描述完全相同的问题的东西。我一直在寻找几天。我画得很糟糕的图像是为了在我的问题上放一张图片: 在此处输入图像描述

我不要求为我做这件事,我要求一条道路。一种方法。 谢谢。

标签: asp.net-mvckendo-uikendo-asp.net-mvc

解决方案


一种方法是专门为您的图表创建一个视图模型,然后您可以根据您的数据填充该视图模型。

大致(未经测试的代码 - 只是给你一个想法),是这样的:

public class MyChartViewModel
{
    public int TypeCount { get; set; }
    public string TypeName { get; set; }
}

然后在填充 MyChartViewModel 的图表的读取方法中:

    var myExistingDataModel = howeverYouGetYourDataHere;
    var model = new MyChartViewModel();

    var distinctTypes = myExistingDataModel.Select(x => x.Type).Distinct().ToList();

    foreach (var distinctType in distinctTypes)
    {
        model.TypeCount = myExistingDataModel.Count(x => x.Type == distinctType);
        model.TypeName = distinctType;
    }

推荐阅读