我使用Kendo grid MVC和第一列我使用此代码:
columns.Template(s => s.IsActive).Title("").ClientTemplate(
" <input type='checkbox' \\#= IsActive ? checked='checked' : '' \\# /input>"
).Width(50);
并且它可以正常工作,但是当我想在跨度中使用此代码时,它无法正常工作我想显示布尔文本,我的错误代码是:
columns.Template(s => s.IsActive).Title(T("My Title").ToString()).ClientTemplate(
" <span> \\#= IsActive?" + T("Required") + " : " + T("Optional") + " \\#</span>"
).Width(150);
那么第二个怎么了?
答案 0 :(得分:2)
从它看来,代码没有被提取,因为它混合了html和javascript。在客户端模板中,这应该在剑道:
#if(data.IsActive === true){#<span>Required</span>#}else{#<span>Optional</span>#}#
我发现这个很乱,所以我个人喜欢把它从模板中拉出来并使用一个功能,因为这意味着我可以更轻松地编辑它并且不会感到沮丧。所以像这样:
.ClientTemplate("#=TextFormatter(data.IsActive)#")
然后在javascript中
function TextFormatter(value)
{
var returnString = '';
if(value === true)
{
returnString = '<span>Required</span>';
}
else
{
returnString = '<span>Optional</span>';
}
return returnString;
}
如需进一步阅读,请查看此链接:How do I have conditional logic in a column client template