我在使用kendo网格列模板时遇到问题我的方案是:
我的专栏将根据其他列值示例创建操作链接:
columns.Bound(a => a.ref_nb).Width(145).Template(@<text></text>).ClientTemplate("#= (tran_ty =='SO') ? '<a>" + "${data.ref_nb}" + "</a>' : '<span>No Entry</span>'#");
在这种情况下使用三进制来基于其他tran_ty列值在列中编码的内容,但是在页面抛出的模板上存在错误。我有可能实现这个目标吗?任何帮助,将不胜感激。 TIA
答案 0 :(得分:2)
试试ClientTemplate()
#= if(tran_ty == 'SO') { # <a href='#=ref_db#'>#=ref_db#</a> # } else { # <span>No Entry</span> # } #
注意,您可能需要稍微调整一下引号,但这样可以让您走上正确的路径。
在此处查看有关语法的更多信息: http://docs.telerik.com/kendo-ui/framework/templates/overview#template-syntax
答案 1 :(得分:1)
我个人认为在尝试执行更复杂的客户端模板时,此过程更容易
将绑定列更改为:
columns.Bound(a => a.ref_nb).Width(145).ClientTemplate("#=myClientSideTemplate(data)#");
然后有一些javascript为你做格式化:
function myClientSideTemplate(data) {
var returnString = '';
if(data.tran_ty === 'SO')
{
returnString = '<a href="' + data.ref_nb + '">' + data.ref_nb + '</a>';
}
else
{
returnString = '<span>Value is not equal to SO</span>';
}
return returnString;
}
通过这种方式,您可以继续使用javascript,并且不会遇到可能缺少引号或信息的问题。
这也意味着如果您在其他地方需要此功能,则可以重复使用该代码。