如何在剑道图表中制作自定义工具提示?

时间:2013-10-10 18:40:07

标签: jquery asp.net-mvc razor kendo-ui

我正在使用Kendos StockChart和Razor / MVC。

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

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#

2 个答案:

答案 0 :(得分:3)

作为一般Kendo UI提示,如果您无法在模板中获取要打印的值,则可以制作模板:

"#console.log(data)#"

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

答案 1 :(得分:3)

在Node类中,添加:

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

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

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

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