【问题标题】:How to make a simple pie chart using Kendo UI ASP.NET MVC using Entity Framework?如何使用实体框架使用 Kendo UI ASP.NET MVC 制作简单的饼图?
【发布时间】:2013-02-10 15:05:40
【问题描述】:

我对剑道 UI 很陌生,更不用说 Telerik。我一直在尝试使用 Kendo ui Q3 从我的模型类制作饼图,但失败了,我可以找到一个很好的示例或教程。

我被困住了,很沮丧,因为我认为这会很容易,但事实并非如此......请帮忙。


这是我的模型类。

public class FinancialAccount
{
    public virtual int FinancialAccountId { get; set; }
    public virtual int UserId { get; set; }
    public virtual string AccountNumber { get; set; }
    public virtual ICollection<Loan> Loans { get; set; }
    public virtual ICollection<Payment> Payments { get; set; }
}

我想对 Loan 类的 Loans 进行汇总,同时对 payment 类中的付款进行汇总,然后将全部内容显示在一个财务账户下。

这是我的控制器:

 public ActionResult Index()
    {


        var financialaccounts = db.FinancialAccounts.Include(a=>a.Loans).Include(b=>b.Payments);

        return View(financialaccounts.ToList());
    }

    public ActionResult MyFinances()
    {
        var financialaccounts = db.FinancialAccounts.Include(a=>a.Loans).Include(b=>b.Payments);
       // DataSourceResult result =
        return Json(financialaccounts, JsonRequestBehavior.AllowGet);
    }

这是我的看法:

 @(Html.Kendo().Chart<FinancedSociety.Models.FinancialAccount>()
    .Name("chart")
    .Title("Pop In Accounts")
    .Legend(legend => legend
        .Position(ChartLegendPosition.Top)
    )
    .DataSource(ds => ds.Read(read => read.Action("MyFinances", "Financials")))
    .Series(series => {
        series.Pie(model => model.Payments.Sum(a => a.Amount), model => model.Payments.Select(b => b.Description).ToString());
                  // model => model.Loans.Sum(c=>c.Amount), model => model.Loans.Select(f=>f.Description).ToString());
    })
    .Tooltip(tooltip => tooltip
        .Visible(true)
        .Format("{0:N0}")
    ).Theme("metro")
) 

我收到此错误:绑定列需要字段或属性访问表达式。当我更改并且不尝试访问不是 FinancialAccount 模型类的集合的项目时,会得到一个应该有图表的空白区域

如果您知道任何完整的教程,它们可能会有很大帮助。 Kendo UI 对于像 Telerik 的 MVC 扩展这样的初学者来说没有很好的记录:www.demos.telerik.com/aspnet-mvc/razor/chart/piechart?theme=metro,这里他们展示了一个 viewcontroller 以及 model但是对于 Kendo ui,它只是视图和控制器

【问题讨论】:

  • 你的问题是什么?请更具体!你有一些错误吗?这些错误是什么?或者你得到了一些意想不到的结果?会得到什么以及预期的行为应该是什么?
  • 对不起,我得到了这个:绑定列需要字段或属性访问表达式。当我更改并且不尝试访问不是 FinancialAccount 模型类的集合的项目时,会得到一个空白区域,其中应该有一个图表
  • 如果您知道任何完整的教程,它们可能会有很大帮助。 Kendo UI 对于像 Telerik 的 MVC 扩展这样的初学者来说没有很好的记录:demos.telerik.com/aspnet-mvc/razor/chart/piechart?theme=metro,这里他们展示了一个视图、控制器和模型,但对于 Kendo ui 它只是视图和控制器

标签: asp.net-mvc kendo-ui telerik-mvc


【解决方案1】:

您不能执行 .Sum() 或 .Select() 部分。您需要创建一个为您执行此操作的模型(类),以便您只需返回已经计算或在模型的此属性中计算的 model.PaymentsSum。不要气馁,这是每个人遇到的第一个问题。基本上,对于所有 Kendo 控件,您需要将它们传递给平面模型(TreeView 除外)。尽管您可以访问所引用的数据库对象的完整对象图,但在构建这些平面模型时。最后,这是您想要完成大部分 MVC 的方式,因此您可以使用 DataAnnotations 并将繁重的工作放在模型中。我希望我能帮上忙,剑道有一些怪癖,但我在一些非常大型的高知名度项目中对它感到非常满意。

【讨论】:

  • @TreyGramann 您能否提供一个示例代码,其中包含示例 Viewmodel、控制器和饼图视图,显示每个部分的总和的百分比,即组数据中 A、B、C 类别的每个总和?跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-26
相关资源
最近更新 更多