kendo UI-基于列值的kendo ui网格中的条件列

时间:2015-01-13 02:16:12

标签: javascript kendo-ui kendo-grid kendo-asp.net-mvc

我在使用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

2 个答案:

答案 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,并且不会遇到可能缺少引号或信息的问题。

这也意味着如果您在其他地方需要此功能,则可以重复使用该代码。