剑道饼图 MVC 数据绑定



我在MVC中使用Telerik的Kendo UI饼图时遇到了问题。 我在他们的网站上找不到任何像样的代码示例。 我找到的一个演示只显示了一半的代码,所以我试着猜测如何让它工作。 我遇到了一个错误,无论我试图消除错误,似乎都不起作用。 该系列存在问题。实际绑定数据的饼图部分。 我复制了他们示例中的代码,并像他们一样使用了 lambda 表达式。 模型 =>模型。百分比和模型 =>模型。状态名称以使用我的视图模型。 但它在第一个 lambda 上出错,并显示以下错误消息:

CS1660:无法将 lambda 表达式转换为类型"字符串",因为它不是委托类型

以下是相关代码:

视图

模型/视图:

public class StatusPercentageViewModel
{
    public string StatusName { get; set; }
    public int Count { get; set; }
    public double Percentage { get; set; }
}

@model IEnumerable<StatusPercentageViewModel>
@(Html.Kendo().Chart(Model)
    .Name("StatusBreakdown")
    .Legend(legend => legend
        .Position(ChartLegendPosition.Bottom)
    )
    .Series(series =>
    {
        series.Pie(
            model => model.Percentage,
            model => model.StatusName,
            null,
            null
        );
    })
    .Tooltip(tooltip => tooltip.
        Template("${ category } - ${ value }%").Visible(true)
    )
)

如果要像这样定义序列,则可能需要指定模型。请参阅此示例

例如:

@(Html.Kendo().Chart<StatusPercentageViewModel>()
    .Name("StatusBreakdown")
    .Legend(legend => legend.Position(ChartLegendPosition.Bottom))
    .DataSource(ds => ds.Read(read => read.Action("GetStatus", "Status")))
    .Series(series =>
    {
        series.Pie(
            model => model.Percentage,
            model => model.StatusName
        );
    })
    .Tooltip(tooltip => tooltip.Template("${ category } - ${ value }%").Visible(true))
)

另一种方法(更类似于你现在拥有的)是:

@model IEnumerable<StatusPercentageViewModel>
@(Html.Kendo().Chart()
    .Name("StatusBreakdown")
    .Legend(legend => legend.Position(ChartLegendPosition.Bottom))
    .Series(series => series.Pie(Model))
    .Tooltip(tooltip => tooltip.Template("${ category } - ${ value }%").Visible(true))
)

相关内容

  • 没有找到相关文章

最新更新