条件模板kendo ui

时间:2014-12-30 13:16:30

标签: javascript html5 kendo-ui kendo-grid

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

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

这是我试图实现的一个例子,它不起作用。为简明起见,我遗漏了与我的问题无关的其他网格属性:

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

1 个答案:

答案 0 :(得分:1)

首先,kendo.template返回需要调用的 Function (使用模板数据作为参数)以返回HTML代码。所以,为了你的例子,它需要像这样修改:

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

现在,遗憾的是,没有办法<#34; 正常渲染行&#34;因为您已经指定了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>"
        }
    }
});

希望这有帮助。