首页 > 解决方案 > 使用模板中的 if 语句有条件地格式化剑道网格列问题

问题描述

我在尝试使用模板在剑道网格的一个列中为我的值添加百分号时遇到了问题,我正在使用的是..

template: "#if(Markup != null){ #=kendo.format('{0:p}', Markup / 100)# }#"

因此,如果标记值不为空,那么我希望它显示百分号,但是当我运行网格时,我得到的只是我的列是

=kendo.format('{0:p}', Markup / 100)

标签: kendo-gridkendo-template

解决方案


在这种情况下,我喜欢将模板用作函数:

template: function(item) {
    if(item.markup) {
        return kendo.format('{0:p0}', item.markup / 100);
    }

    return item.name;
}

简单示例:模板作为函数

或者您可以按照自己的方式使用它:

template: "#= data.markup ? kendo.format('{0:p}', data.markup / 100): 'N/A' #"

Dojo:内联模板

笔记:

"#if(Markup != null){ #=kendo.format('{0:p}', Markup / 100)# }#"
                       \--- this hash closes script, 
                            everithing after that is string.
                            Thats why you see
                            =kendo.format('{0:p}', Markup / 100) in grid 

推荐阅读