是否可以在满足特定条件的情况下在Kendo UI网格中使用行模板(例如,该行上的字段具有特定值)?如果不满足该条件,那么它不应该渲染模板,而只是正常渲染行。
我不想在模板本身中指定条件,因为除非我弄错了,否则我还必须包含"默认"如果不满足条件,则在模板定义中使用html。
这是我试图实现的一个例子,它不起作用。为简明起见,我遗漏了与我的问题无关的其他网格属性:
$("#divGrid").kendoGrid({
rowTemplate: function (data) {
if (condition) kendo.template($("#myRowTemplate").html(data));
// else render row without the template, but how?
}
});
答案 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>"
}
}
});
希望这有帮助。