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

Posted

技术标签:

【中文标题】如何在剑道图表中制作自定义工具提示?【英文标题】:how to make a custom tooltip in a Kendo Chart? 【发布时间】:2013-10-18 16:17:44 【问题描述】:

我正在使用带有 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#

【问题讨论】:

【参考方案1】:

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

"#console.log(data)#"

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

【讨论】:

【参考方案2】:

在您的 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 #' 是模板数据的剑道语法。祝你好运!

【讨论】:

一个了不起的想法。当我不得不为一个大的 List 构建模板时,这真的很有帮助

以上是关于如何在剑道图表中制作自定义工具提示?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Chart Js 中自定义工具提示?

剑道图表显示0值

我可以自定义 Google Geochart 图表中的工具提示文本吗?

如何在工具提示模板中使用剑道图表数据?

谷歌图表:带有自定义工具提示的多行

R Highcharter:工具提示自定义