在Kendo UI Grid中将column.values与行模板一起使用

时间:2014-06-26 13:06:32

标签: kendo-ui kendo-grid

我正在使用带有自定义行模板的Kendo网格,并为一列定义了值。弹出编辑器正确显示下拉列表,但网格仍显示id字段。代码:

<script id="usersTableRowTemplate" type="text/x-kendo-tmpl">
    <tr data-uid="#= uid #">
        <td>#: Name #</td>
        <td>#: GroupId #</td>
    </tr>
</script>
<script>
    $("#usersTable").kendoGrid({
        "rowTemplate": kendo.template($("#usersTableRowTemplate").html()),
        "editable": "popup",
        "columns": [
            {
                "field": "Name",
                "title": "Name"
            },
            {
                "field": "GroupId",
                "title": "Group",
                "values": [{"value": 1,"text": "A"}, {"value": 2,"text": "B"}]
            }
        ]
    });
</script>

请问GroupId模板中的正确表达式是什么?

1 个答案:

答案 0 :(得分:1)

我终于联系了剑道支持团队解决了这个问题。解决方案是引用列,迭代值并显示具有value == GroupId的项目中的文本。

<script id="usersTableRowTemplate" type="text/x-kendo-tmpl">  
<tr data-uid="#= uid #">
    <td>#: Name #</td>
    <td>#: textForGroup(GroupId) #</td>
</tr>
</script>

<script>
function textForGroup(id) {      
    var values = $("#usersTable").data("kendoGrid").columns[1].values;

    var item = $.grep(values, function(item, _) {               
        return item.value === id;
    })[0];

    return item ? item.text : "";
}
</script>