2

我正在使用带有 Razor/MVC 的 Kendos StockChart。

当我的用户将鼠标悬停在系列中的某个项目上时,我想要一个包含数据绑定数据的友好字符串,而不仅仅是值或类别。

class Node
{
    public int Value {get; set;}
    public DateTime Date { get; set;}
    public string InterestingInfo { get; set;}
}

@(Html.Kendo().StockChart<Node>()
        .Name("chart") 
        .DataSource(ds => ds.Read(read => read.Action("_X", "Controller")))
        .DateField("Date")
        .Series(series => {
            series.Line(model => model.Value);
        })
        .Navigator(nav => nav
            .DataSource(ds => ds .Read(read => read.Action("_X", "Controller")))
            .Series(series =>
            {
                series.Area(s => s.Value);
            })
        )       
        .Tooltip(tooltip => tooltip
            .Visible(true)
            .Shared(false)
            .Template("#=InterestingInfo#")
        )
      )
)

无论我在模板中使用什么,除了工具提示中的“未定义”之外,我似乎什么也得不到

我试过了,但老实说,我不确定我在做什么,谁处理这些(是 jquery、kendo 等)

 #=data.InterestingInfo#
 #=dataItem.InterestingInfo#
4

2 回答 2

4

在您的 Node 类中,添加以下内容:

class Node
{
    public int Value {get; set;}
    public DateTime Date { get; set;}
    public string InterestingInfo { get; set;}
    public string Tooltip { get; set; }
}

在控制器中的读取方法“MethodX”中,使用您想要的任何内容填充 Tooltip 属性。从那里,您可以使用以下代码:

.Tooltip(tooltip => tooltip
        .Visible(true)
        .Shared(false)
        .Template("#= dataItem.Tooltip #")
    )

dataItem 由 kendo 处理,它是该特定绑定对象的数据。'#= stuff here #' 是模板数据的剑道语法。祝你好运!

于 2014-08-04T04:51:52.077 回答
4

作为一般的 Kendo UI 提示,如果您似乎无法打印模板中的值,您可以制作模板:

"#console.log(data)#"

然后在开发工具中检查控制台。您应该能够弄清楚以这种方式传递给您的模板的内容。

于 2013-10-10T21:58:09.463 回答