0

我使用 Kendo 2015.1.429,MVC 4。我喜欢动态更改 Kendo Chart 列中的文本 leyends:

在我的系列中,我有一个可以随时更改的文本帽(2016 年、2017 年等):

首先我有:

@(Html.Kendo().Chart<TestVM>()
 .Name("ChartTest")
 .Title("Montos")
 .Legend(legend => legend.Position(ChartLegendPosition.Top))
...
.Series(series =>
{
series.Column(model => model.Monto1).Name("Monto 2015").Color("#6BD5C3");
series.Column(model => model.Monto2).Name("Monto 2014").Color("#7992BF");
})

但是我喜欢动态地制作,当我使用 viewBag 时它会抛出一个错误:

myView.cshtml
@{
    var leyendaMonto1 = ViewBag.Monto1;
    var leyendaMonto2 = ViewBag.Monto2;
}

series.Column(model => model.MontoAnio1).Name(@leyendaMonto1).Color("#6BD5C3");
model.MontoAnio1).Name(@leyendaMonto2).Color("#6BD5C3");

错误显示:

Se produjo una excepción de tipo 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' en System.Core.dll pero no se controló en el código del usuario

Información adicional: La mejor coincidencia de método sobrecargado para 'Kendo.Mvc.UI.Fluent.ChartSeriesBuilderBase<Kendo.Mvc.UI.IChartBarSeries,Kendo.Mvc.UI.Fluent.ChartBarSeriesBuilder<TestVM>>.Name(string)' tiene algunos argumentos no válidos

有什么帮助吗?

4

2 回答 2

0

代替

series.Column(model => model.MontoAnio1).Name(@leyendaMonto1)

尝试

series.Column(model => model.MontoAnio1).Name("@leyendaMonto1")
于 2015-05-18T13:38:27.043 回答
0

我修复了,我改变了放置一个独特的文本:

series.Column(model => model.Field).Name("myleyend1").Color("#6BD5C3");

另外,我使用渲染事件

.Events(events => events.LegendItemClick("test").Render("onRender")) 

然后,在脚本中我替换文本:

function onRender(e) {
        $("#ChartTests g text:contains('leyendaMonto1')").text(myNewValue);
    }
于 2015-05-18T17:14:06.607 回答