Kendo ui kendo ui网格列中的自定义模板数据类型不一致

Kendo ui kendo ui网格列中的自定义模板数据类型不一致,kendo-ui,kendo-grid,Kendo Ui,Kendo Grid,我需要使用剑道ui网格进行数据编辑。问题是,返回响应中的每个可能项都是字符串,但它包含其他类型的值(例如value=“true”或value=“32%”或value=“[0:standard,1:advanced]”) 所以我需要在网格上设置模板,以对应字符串中的不同数据类型。 所以对于真/假,我必须有复选框,对于32%,它应该提供文本框,但带有百分比验证,对于数组响应,它需要是一个下拉列表 我设法使用编辑器设置了下拉框和文本框选项,但我无法使复选框以任何方式正确处理。复选框按预期显示,但无论我

我需要使用剑道ui网格进行数据编辑。问题是,返回响应中的每个可能项都是字符串,但它包含其他类型的值(例如value=“true”或value=“32%”或value=“[0:standard,1:advanced]”)

所以我需要在网格上设置模板,以对应字符串中的不同数据类型。 所以对于真/假,我必须有复选框,对于32%,它应该提供文本框,但带有百分比验证,对于数组响应,它需要是一个下拉列表

我设法使用编辑器设置了下拉框和文本框选项,但我无法使复选框以任何方式正确处理。复选框按预期显示,但无论我如何尝试,它都不会在网格保存后将数据绑定到网格。(无论值是多少,它始终不被选中)

下面是“value”列的代码片段,以及我用于模板的内容(item.type==“3”是布尔值)

字段:“值”,
标题:“价值”,
校长致辞:{
“类”:“表头单元格”
},
模板:功能(项目){
如果(项目类型==“3”){
var布尔值=(/true/i).test(item.value);
item.value=布尔值;
返回“”;
}否则{
返回“”;//其他类型也将返回
}
},

提前感谢。

当模板定义是一个函数时,您不需要像直接使用剑道模板语言或字符串定义剑道模板时那样使用#标记来区分标记和javascript

这是因为函数内部总是javascript,而#标记只是剑道模板语言中的指令

因此,请将模板简化为:

template: function (item) {
  return  '<input class="chkbx" id="' + item.name + '" type="checkbox"' + (item.value ? 'checked="checked"' : '') + '/>';
}
这是我目前在生产代码中使用的一种技术


也可以在模板中使用剑道MVVM绑定来获得更优雅的解决方案,而不是显式的单击处理程序,但我必须对此进行更多的实验才能找到答案。

非常感谢,我将尝试此解决方案并获得回复。这非常有效。现在我必须清理其他东西。再次感谢,干杯。
template: function (item) {
  return  '<input class="chkbx" id="' + item.name + '" type="checkbox"' + (item.value ? 'checked="checked"' : '') + '/>';
}
$("#grid").on("click", ".chkbx", function () {
    var $checkBox = $(this),
    checked = $checkBox.is(":checked"),
    dataItem = grid.dataItem($checkBox.closest("tr"));

    dataItem.set("value", checked);
});