使用 Kendo 的饼图和动态数据
Use of Kendo's Pie chart with dynamic data
我正在尝试使用饼图来显示统计信息。数据在我的 table 中,我是这样得到的:
public class StatisticsAccess
{
public static object getTypesForStatistics()
{
var dbo = new UsersContext();
var all = (from a in dbo.Note
select a).ToList();
var results = all.GroupBy(item => item.language.lang)
.Select(g => new
{
language = g.Key,
Count = g.Select(l => l.language.lang).Count()
});
return (results.ToList());
}
}
控制器:
public ActionResult Index()
{
var results = Json(DAL.StatisticsAccess.getTypesForStatistics());
return View();
}
查看:
@(Html.Kendo().Chart()
.Name("chart")
.Title(title => title
.Text("Share of Internet Population Growth, 2007 - 2012")
.Position(ChartTitlePosition.Bottom))
.Legend(legend => legend
.Visible(false)
)
.Series(series => {
series.Pie(model => model.language, model => model.Count);
})
.DataSource(ds => ds.Read(read => read.Action("index", "Statistics")))
.Tooltip(tooltip => tooltip
.Visible(true)
.Format("{0}%")
)
)
我认为 属性:
系列中存在语法错误
Cannot convert lambda expression to type "string"
任何人都可以向我解释我应该遵循的语法来修复这个错误吗?
谢谢
我认为您在 LINQ 中以错误的方式进行计数。
Count = g.Select(l => l.language.lang).Count()
这里不需要做 Select 因为它们已经从你的 .GroupBy
中分组了
应该是:
Count = g.Count()
Using GroupBy, Count and Sum in LINQ Lambda Expressions
我正在尝试使用饼图来显示统计信息。数据在我的 table 中,我是这样得到的:
public class StatisticsAccess
{
public static object getTypesForStatistics()
{
var dbo = new UsersContext();
var all = (from a in dbo.Note
select a).ToList();
var results = all.GroupBy(item => item.language.lang)
.Select(g => new
{
language = g.Key,
Count = g.Select(l => l.language.lang).Count()
});
return (results.ToList());
}
}
控制器:
public ActionResult Index()
{
var results = Json(DAL.StatisticsAccess.getTypesForStatistics());
return View();
}
查看:
@(Html.Kendo().Chart()
.Name("chart")
.Title(title => title
.Text("Share of Internet Population Growth, 2007 - 2012")
.Position(ChartTitlePosition.Bottom))
.Legend(legend => legend
.Visible(false)
)
.Series(series => {
series.Pie(model => model.language, model => model.Count);
})
.DataSource(ds => ds.Read(read => read.Action("index", "Statistics")))
.Tooltip(tooltip => tooltip
.Visible(true)
.Format("{0}%")
)
)
我认为 属性:
系列中存在语法错误Cannot convert lambda expression to type "string"
任何人都可以向我解释我应该遵循的语法来修复这个错误吗? 谢谢
我认为您在 LINQ 中以错误的方式进行计数。
Count = g.Select(l => l.language.lang).Count()
这里不需要做 Select 因为它们已经从你的 .GroupBy
中分组了应该是:
Count = g.Count()
Using GroupBy, Count and Sum in LINQ Lambda Expressions