1

私は剣道UIはもちろん、テレリックも初めてです。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 を合計し、支払いクラスの支払いを合計して、すべてを金融口座に表示したいと考えています。

これは私のコントローラーです:

 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 MVCのテレリック拡張機能のような初心者向けには十分に文書化されていません: www.demos.telerik.com/aspnet-mvc/razor/chart/piechart?theme=metro、ここではビューコントローラーモデルも表示されますが、剣道UIはただのビューとコントローラー

4

1 に答える 1

4

.Sum() または .Select() の部分は実行できません。すでに計算されているか、モデルのこのプロパティで計算されている model.PaymentsSum を単に返すように、これを行うモデル (クラス) を作成する必要があります。がっかりしないでください。これは誰もが最初に直面する問題です。基本的にすべての Kendo コントロールに対して、フラット モデルを渡す必要があります (TreeView を除く)。参照しているデータベース オブジェクトの完全なオブジェクト グラフにアクセスできるにもかかわらず、これらのフラット モデルが構築されている場合。最終的には、これが MVC のほとんどすべてを実行したい方法であるため、DataAnnotations を使用して、重い作業をモデルに入れることができます。剣道にはいくつかの癖がありますが、いくつかの非常に大規模で知名度の高いプロジェクトで非常に満足しています。

于 2013-02-11T19:45:46.867 に答える