Kendo 网格 - 条件客户端模板

Kendo Grid - Conditional ClientTemplate

我在 Kendo 网格中有以下客户端模板:

.Columns(columns =>
{
    columns.Bound(p => p.ID).ClientTemplate("<input id='#=data.ID#' type='checkbox' onclick='chkEntry(this)' />")

等...

效果很好。如果 data.CandidateCode 等于 'CO1',我只想显示该输入。

这是我的尝试之一:

.Columns(columns =>
{
    columns.Bound(p => p.ID).ClientTemplate("#if (# #=data.CandidateCode# # == 'CO1') {#<input id='#=data.ID#' type='checkbox' onclick= chkEntry(this)' /> #}#")

据我了解,可以使用井号 (#) 来指示任意 javascript,以及文字和数据值。我走在正确的轨道上吗?无论我如何尝试这种语法,我都会收到 'Uncaught Error: Invalid template' 错误。

是的,hash syntax 可能很棘手。一旦你用'#“开始js,你就不需要进一步转义变量。当你在像<input>这样的标记中时,你会这样做。所以试试这个没有注释行:

columns.Bound(p => p.ID)
                     // Inside code no need to hashtag CandidateCode
    .ClientTemplate("# if (CandidateCode == 'CO1') { #" +                           " 
                     // Inside markup you do need hashtag
                    "<input id='#=ID#' type='checkbox' onclick='chkEntry(this)' />" +
                    "#}#")