我有以下代码:
$("#grid").kendoGrid({
dataSource: {
type: "odata",
data: scannedResult.targetList,
pageSize: 20
},
height: 550,
groupable: true,
sortable: true,
pageable: {
refresh: true,
pageSizes: true,
buttonCount: 5
},
columns: [{
field: "proccess",
title: "Contact Name",
width: 200
}, {
field: "status",
title: "status"
}, {
field: "comment",
title: "comment"
}]
});
创建一个kendo简单网格。这里的详细信息是plunker。
现在,字段status
可以是3个值中的1个:传递,失败,跳过。我希望status
列显示图标而不是值。虽然代码相当简单,但我不知道如何使列成为自定义列。
有没有办法让列成为自定义列?
答案 0 :(得分:6)
您应该使用模板定义。类似的东西:
<script id="status-template" type="text/kendo-templ">
# if (data.status === 1) { #
<span>Status1</span>
# } else if (data.status === 2) { #
<span>Status 2</span>
# } else { #
<span>Status 3</span>
# } #
</script>
columns: [{
field: "proccess",
title: "Contact Name",
width: 200
}, {
field: "status",
title: "status",
template: $("#status-template").html()
}, {
field: "comment",
title: "comment"
}]
看到它在这里运行:http://jsfiddle.net/OnaBai/5x8wt0f7/
显然,模板可以发出任何HTML代码,它可能是链接,图像......
答案 1 :(得分:1)
这已经得到了解答,但我想展示一下,如果人们在链接到jQuery选择器时感到困惑,我会如何写这个。
// Custom Template that takes in entire Row object
function statusTemplate(dataRow) {
return `<span class="label label-${dataRow.status.toLowerCase()}">${dataRow.status}</span>`;
}
// Column definitions for grid
columns: [{
field: "proccess",
title: "Contact Name",
width: 200
}, {
field: "status",
title: "status",
template: statusTemplate
}, {
field: "comment",
title: "comment"
}]