我正在使用带有自定义行模板的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模板中的正确表达式是什么?
答案 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>