Javascript 剑道UI-剑道UI网格中基于列值的条件列

Javascript 剑道UI-剑道UI网格中基于列值的条件列,javascript,kendo-ui,kendo-grid,kendo-asp.net-mvc,Javascript,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,我在使用剑道网格列模板时遇到问题。我的情况是: 我的专栏将基于另一个专栏值创建操作链接示例: columns.Bound(a => a.ref_nb).Width(145).Template(@<text></text>).ClientTemplate("#= (tran_ty =='SO') ? '<a>" + "${data.ref_nb}" + "</a>' : '<span>No Entry</span>'#"

我在使用剑道网格列模板时遇到问题。我的情况是:

我的专栏将基于另一个专栏值创建操作链接示例:

columns.Bound(a => a.ref_nb).Width(145).Template(@<text></text>).ClientTemplate("#= (tran_ty =='SO') ? '<a>" + "${data.ref_nb}" + "</a>' : '<span>No Entry</span>'#");
columns.Bound(a=>a.ref_nb).Width(145).Template(@).ClientTemplate(“#=(tran_ty=='SO')?”+“${data.ref_nb}”+”:“无条目”;”;

在这种情况下,使用三元来根据其他Trans_ty columns值确定列中要编码的内容的基础,但如果页面抛出的模板有错误。有没有一种可能的方法我可以做到这一点??任何帮助都将不胜感激。TIA

为您的
ClientTemplate()尝试此功能

#=if(tran_ty='SO'){##else{#No Entry}#
请注意,您可能需要稍微调整引号,但这将使您走上正确的道路

请在此处查看有关语法的更多信息:

我个人认为,在尝试进行更复杂的客户端模板制作时,此过程更容易

将绑定列更改为:

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; 

    }
函数myClientSideTemplate(数据){
var returnString='';
如果(data.tran_ty=='SO')
{
returnString='';
}
其他的
{
returnString='值不等于SO';
}
返回字符串;
}
通过这种方式,您可以继续使用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; 

    }