2013-10-10 47 views
2

我使用Kendos StockChart和Razor/MVC。如何在一個Kendo圖表中自定義工具提示?

當我的用戶將鼠標懸停在系列中的某個項目上時,我想要一個包含數據綁定數據的友好字符串,而不僅僅是值或類別。

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,劍道等)

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

回答

3

作爲一般劍道UI提示,如果你似乎無法得到你的模板中的值來打印,可以使你的模板:

"#console.log(data)#" 

然後檢查開發工具中的控制檯。你應該能夠弄清楚以這種方式傳遞給你的模板的內容。在您的控制器

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

在你讀法「MethodX」,填入你想要的任何工具提示屬性:

2

在你的Node類,添加此。從那裏,您可以使用此代碼:

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

dataItem由kendo處理,它是該特定綁定對象的數據。 '#= stuff here#'是模板數據的kendo語法。祝你好運!

+0

一個了不起的想法。當我不得不爲大列表構建我的模板時,這確實有幫助 –

相關問題