Kendo UI - 网格中的工具提示

nou*_*ime 5 javascript kendo-ui kendo-grid kendo-tooltip kendo-template

我正在尝试为我的网格创建一个工具提示,如下所示:

$("#grid").kendoTooltip({
    autoHide: true,
    showOn: "mouseenter",
    width:125,
    height:125,
    position: "right",
    filter: ".k-grid-content a.hasTooltip",
    content: kendo.template($("#storeTerritory").html())
});
Run Code Online (Sandbox Code Playgroud)

模板定义:

<script type="text/x-kendo-template" id="storeTerritory">
<div class="tooltipcontent">
    #for(var i = 0; i < Territories.length; i++){#
        #if (Territories != 'null' && Territories != '')  {#
            <p>#=Territories[i].TerritoryDescription#</p>
        #} else{#
            <p>Information not available</p>
      #}#
    #}#
</div>
</script>
Run Code Online (Sandbox Code Playgroud)

我在这里设置了一个示例:http:
//jsbin.com/iJunOsa/21/edit

我得到了ReferenceError: Territories is not defined在控制台错误,当我鼠标移到"威尔顿"

假设我storeTerritory要用普通的HTML 替换模板的内容,然后出现工具提示:

<p>Wilton</p>
Run Code Online (Sandbox Code Playgroud)

问题可能是什么?

Lar*_*ner 6

问题是没有与工具提示相关的模型; 为了做你想做的事,你需要使用一个函数创建内容:

$("#grid").kendoTooltip({
    autoHide: true,
    showOn: "mouseenter",
    width: 125,
    height: 125,
    position: "right",
    filter: ".k-grid-content a.hasTooltip",
    content: function (e) {
        var row = $(e.target).closest("tr");
        var dataItem = $("#grid").data("kendoGrid").dataItem(row);

        var template = kendo.template($("#storeTerritory").html());
        return template(dataItem);
    }
});
Run Code Online (Sandbox Code Playgroud)

(更新演示)