C# 将剑道饼图与数据源绑定
我正在尝试使用饼图来显示统计数据。数据在我的表中,我是这样得到的:C# 将剑道饼图与数据源绑定,c#,.net,asp.net-mvc,telerik,kendo-asp.net-mvc,C#,.net,Asp.net Mvc,Telerik,Kendo Asp.net Mvc,我正在尝试使用饼图来显示统计数据。数据在我的表中,我是这样得到的: public class StatisticsAccess { public static object getTypesForStatistics() { var dbo = new UsersContext(); var all = (from a in dbo.Note select a).ToList(); var
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.Count()
});
return (results.ToList());
}
}
控制器:
public class StatisticsController : Controller
{
//
// GET: /Statistics/
public ActionResult Index()
{
return View();
}
public void displayChart()
{
var results = Json(DAL.StatisticsAccess.getTypesForStatistics());
}
}
视图:
我的视图中没有语法错误,但当我加载页面时,我的图表只是显示为空
有人能解释一下我应该遵循什么语法来修复这个错误吗?
Thx您的代码至少存在两个主要问题 您已经定义了柱状图,这应该是饼图:
@(Html.Kendo().Chart<MyModel>()
.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("displayChart", "Statistics")))
.Tooltip(tooltip => tooltip
.Visible(true)
.Format("{0}%")
)
)
此外,您可能希望执行以下操作:
创建视图模型:
public class PieModel {
public string Language { get;set; }
public int Count { get;set; }
}
将模型添加到图表中
@(Html.Kendo().Chart<PieModel>() {
...
@(Html.Kendo().Chart()){
...
更改您的查询:
public IEnumerable<PieModel> 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 PieModel
{
Language = g.Key,
Count = g.Count()
});
return results.ToList();
}
public IEnumerable getTypesForStatistics()
{
var dbo=新用户上下文();
var all=(来自dbo.Note中的
选择一个.ToList();
var results=all.GroupBy(item=>item.language.lang)
.选择(g=>new-Model
{
语言=g.键,
Count=g.Count()
});
返回结果。ToList();
}
感谢您抽出时间,但图表仍然显示为空:(
@(Html.Kendo().Chart<PieModel>() {
...
public IEnumerable<PieModel> 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 PieModel
{
Language = g.Key,
Count = g.Count()
});
return results.ToList();
}