【问题标题】:Kendo dataviz piechart - displaying remote dataKendo dataviz 饼图 - 显示远程数据
【发布时间】:2013-01-18 20:50:14
【问题描述】:

我正在尝试显示具有以下信息的 Kendo dataviz 饼图。

我正在将“结果”从我的控制器传回我的视图。

我的视图包含饼图:

@(Html.Kendo().Chart<PropertyViewModel>()
        .Name("chart")
        .Title("Properties")
        .Legend(legend => legend
            .Position(ChartLegendPosition.Top)
        )
        .DataSource(ds => ds.Read(read => read.Action("GetPropertiesChart", "Home")))
        .Series(series => {
            series.Pie(model => model.Address.State, model => model.Address.State.Count().ToString());
        })
        .Tooltip(tooltip => tooltip
            .Visible(true)
            .Format("{0:N0}")
        )
    ) 

我的页面上只有一个空白区域应该是饼图。

控制器代码:

public ActionResult GetPropChart()
    {
        var allProps = PService.GetAll();

        var props = allProps.Cast<PropViewModel>().ToList();


        var results = props
                .GroupBy(item => item.Address.State)
                .Select(g => new
                {
                    State = g.Key,
                    Count = g.Select(l => l.Address.State).Count()
                });

        return Json(results);
    }

【问题讨论】:

  • 为数据服务的控制器动作方法是什么样的?控制台中是否还有任何 JavaScript 错误?你用什么浏览器?您是否尝试将集合传递给 BindTo 方法并查看它是否有效?
  • 我已经添加了上面的控制器代码。我没有收到任何 JavaScript 错误,我正在使用 Chrome。我没有尝试将集合传递给 BindTo 方法,但我会试一试。

标签: asp.net-mvc-3 kendo-ui kendo-dataviz


【解决方案1】:

你返回的模型如下:

.Select(g => new
      {
          State = g.Key,
          Count = g.Select(l => l.Address.State).Count()
      }

但是您的系列定义不同(没有 Adress 属性)

series.Pie(model => model.Address.State)

也不支持绑定到方法(例如 model.Address.State.Count().ToString()) - 创建的常规属性改为保存值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多