条件模板剑道ui

Posted

技术标签:

【中文标题】条件模板剑道ui【英文标题】:conditional template kendo ui 【发布时间】:2015-02-26 15:54:18 【问题描述】:

仅当满足特定条件(例如,该行上的字段具有特定值)时,是否可以在 Kendo UI 网格中使用行模板?如果不满足该条件,则不应渲染模板,而应正常渲染行。

我不想在模板本身中指定条件,因为除非我弄错了,否则如果不满足条件,我还必须在模板定义中包含“默认”html

这是我试图实现的一个示例,但它不起作用。为简洁起见,我省略了与我的问题无关的其他网格属性:

$("#divGrid").kendoGrid(
    rowTemplate: function (data) 
        if (condition) kendo.template($("#myRowTemplate").html(data));
        // else render row without the template, but how?
    
);

【问题讨论】:

【参考方案1】:

首先,kendo.template 返回一个函数,它需要被调用(以模板数据作为参数)才能返回 HTML 代码。因此,要使您的示例正常工作,需要进行如下修改:

$("#divGrid").kendoGrid(
    rowTemplate: function (data) 
        if (condition) 
            return kendo.template($("#myRowTemplate").html())(data);
         // else render row without the template, but how?
    
);

现在,不幸的是,由于您已经指定了 rowTemplate 函数,因此无法“正常渲染行”。您只能指定需要在 else 条件下显示的模板(或字符串):

$("#divGrid").kendoGrid(
    rowTemplate: function (data) 
        if (condition) 
            return kendo.template($("#myRowTemplate").html())(data);
         else 
            return '<tr>Normal row</tr>';
            // or return kendo.template($("#myRowTemplate2").html())(data)
            // or return "<tr>" + data.name + ": " + data.age + "</tr>"
        
    
);

希望这会有所帮助。

【讨论】:

很遗憾,但感谢您的回复并解决了缺少参数的问题。将此标记为正确答案。

以上是关于条件模板剑道ui的主要内容,如果未能解决你的问题,请参考以下文章

剑道编辑器模板可见条件

在自定义模板中动态添加多个剑道下拉列表

过滤后如何在剑道 ui 网格上显示水平滚动条?

在剑道UI模板中转义百分比“%”

剑道条件格式导致负零

Kendo UI:有条件地阻止工具提示显示在网格单元格上