我有一个serverBound网格,我试图为该列做一个条件语句。我知道.clientTemplate()
不能与服务器所管理的数据源一起使用,因此我想知道是否有人对替代方法有任何想法,可以做一个简单的条件语句。
示例:
.ClientTemplate(
"# if (tmpIsActive && Active == 1) { # " +
"Sales" +
" # } else if (tmpIsActive && Active == 2) { # " +
"Corp" +
"# } #")
答案 0 :(得分:0)
这里有两种方法。
https://dojo.telerik.com/OWObuLOB此dojo向您展示了如何做为template
来完成它,是提取您的简单逻辑并将其应用到使用kendo模板引擎渲染的模板中。
<script id="conditionalTemplate" type="text/x-kendo-template">
#if(data.OrderID %2){#
I am an odd Number
#}else{#
I am an Even Number
#}#
</script>
此模板随后称为int,其列设置如下:
{
field: "ShipCity",
title: "Conditional Field",
template: kendo.template($("#conditionalTemplate").html())
}
我们可以使用模板在此处完成相同的技巧,但是在.ClientTemplate
字符串中,我们将其放在模板中:
columns.Bound(c => c.SomeColumn)
.Width(125)
.ClientTemplate("#=kendo.template($('\\#conditionalTemplate').html())(data)#");
此方法的替代方法是从javascript函数调用模板,该函数为您执行此templating
。像这样:
.ClientTemplate("#=someTemplateFunction('{templateName}', data)#");
function someTemplateFunction(templateName, data){
var template = kendo.template($('#'+ templateName).html());
var result = template(data);
return result;
}
使用最容易理解的版本。
可能值得看一下模板文档,以帮助您更好地了解此处可以做和不能做的事情:https://docs.telerik.com/kendo-ui/framework/templates/overview
任何问题都会让我知道,我会为您改善答案。