1

我对剑道 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 ,这里他们显示了一个视图控制器模型,但至于Kendo ui 它只是视图和控制器

4

1 回答 1

4

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

于 2013-02-11T19:45:46.867 回答