我使用ASP.NET实现了一个Kendo折线图。如在显示的kendo示例中,我使用了系列{}来显示线条。我已经编写了自己的自定义模板。当鼠标悬停时,显示标记的标签。但是我需要将两个参数传递给该函数。
series.Line(m => m.Values[0].value).Labels(lbl => lbl.Position(ChartPointLabelsPosition.Above).Visible(true).Template("#= formatLabelForEffort(category#"))
在上面的代码格式中,LabelForEffort()是在模板中编写的函数调用,它只有一个名为category的参数。我想在同一个函数中发送另一个论点。第二个论点是阵列。我将如何实现这一目标。请帮我解决这个问题。先感谢您。
答案 0 :(得分:1)
我为您准备了这个演示: custom template passing in options.
您需要做的就是改变现有的功能:
.Template("#= formatLabelForEffort(category)#")
到
.Template("#= formatLabelForEffort(category, dataItem)#")
只要数组是系列中绑定的原始数据模型的一部分,您就应该能够改变函数来处理代码。
然后使用我的函数版本:
function formatLabelForEffort(category,dataItem){
var retString = '';
console.log(dataItem);
if (dataItem.myArray !== undefined &&
dataItem.myArray !== null &&
dataItem.myArray !== null &&
dataItem.myArray.length > 0)
{
retString = 'Category is:: ' + category + '\r\n' ;
retString += kendo.stringify(dataItem.myArray) ;
}
else
{
retString = 'Category is:: ' + category;
}
console.log(retString);
return kendo.htmlEncode(retString);
}
我们只需检查以确保数组存在,然后相应地返回一个字符串。
有关您可以传递给系列标签的更多信息,请查看以下链接:
series label template configuration
任何进一步的问题都会给我一个喊叫,我会尽我所能扩展。