【问题标题】:kendo UI- conditional column in kendo ui grid base on column valueskendo UI - kendo ui 网格中基于列值的条件列
【发布时间】:2015-01-13 02:16:11
【问题描述】:

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

我的专栏将根据另一列的值示例创建操作链接:

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

【问题讨论】:

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


    【解决方案1】:

    试试这个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

    【讨论】:

    • 这里我更喜欢三元,因为它会测试五种类型并且更容易维护
    • 我不确定模板是否支持三元 - 但您可以查看我上面提供的文档。
    【解决方案2】:

    我个人觉得在尝试做更复杂的客户端模板时这个过程更容易

    将绑定列更改为:

    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,而不会出现您可能会丢失报价或信息的问题。

    这也意味着如果你在其他地方需要这个函数,你可以重用代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-26
      • 2016-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多