2017-09-12 104 views
0

这只是我试过的许多迭代中的一个例子。基本上,我想按照成本金额显示一个饼图和工作类型。我能够很好地连接到数据库,我能够成功创建一个Kendo网格。任何和所有的帮助表示赞赏!Kendo饼图不会呈现(远程数据)

Report.cshtml

@(Html.Kendo().Chart<JobWebApp.Models.JobViewModel>() 
      .Name("piechart") 
      .Title("Job Types to Cost") 
      .DataSource(dataSource => dataSource 
       .Read(read => read.Action("Jobs_Read", "Reports").Type(HttpVerbs.Get)) 
      ) 
      .Legend(legend => legend 
       .Position(ChartLegendPosition.Top) 
      ) 
      .Series(series => 
      { 
       series.Pie(
        x => x.JOB_TYPE, 
        x => x.JOB_COST 
       ); 
      }) 
     ) 

ReportsController.cs

[HttpGet] 
    public ActionResult Jobs_Read([DataSourceRequest]DataSourceRequest request) 
    { 
     return Json(GetJobs().ToDataSourceResult(request), JsonRequestBehavior.AllowGet); 
    } 

    [NonAction] 
    private IQueryable<JobViewModel> GetJobs() 
    { 
     return from job in dbEntities.Jobs 
       select new JobViewModel 
       { 
        ID = job.ID, 
        DATE = job.DATE, 
        JOB_TYPE = job.JOB_TYPE, 
        JOB_COST = job.JOB_COST 
       }; 
    } 

回答

2

翻转过来,你的价值观饼图系列数据:

 .Series(series => 
     { 
      series.Pie(
       x => x.JOB_COST, 
       x => x.JOB_TYPE      
      ); 
     }) 

方法签名是这样的:

ChartPieSeriesBuilder<TModel> Pie<TValue>(Expression<Func<TModel, TValue>> expressionValue, Expression<Func<TModel, string>> categoryExpression <Func<TModel, string>> expressionColor = null, Expression<Func<TModel, bool>> expressionExplode = null, Expression<Func<TModel, bool>> expressionVisibleInLegend = null); 

IIRC,kendo只接受expressionValue参数的数值。

+0

谢谢!我不再在控制台中发现错误,但它仍然不渲染(除了标题)....但没有错误...任何建议? – SAS20

+0

发送一个List - > return(您的LINQ staement).ToList() – kryptonkal