Tut*_*sis 21 kendo-ui kendo-grid
在Kendo网格中有此列当前显示MySQL布尔值,因此我们有1或0.
这在autosync和inline:true网格中.
我希望这个列的类型为"Checkbox"但是,由于一些奇怪的原因,我只是在网络上找不到一个演示或示例,显示"启用"复选框,在取消选中时将1更改为0并且副Versa.
Ona*_*Bai 40
以前有一些注意事项:
boolean为编辑复选框,但不在编辑模式下.你需要做的是:
模板定义:
{
title : "Fully Paid",
field : "fullyPaid",
template: "<input name='fullyPaid' class='ob-paid' type='checkbox' data-bind='checked: fullyPaid' #= fullyPaid ? checked='checked' : '' #/>"
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我没有定义编辑器功能,因为我们将更改复选框的值而不进入编辑模式.
定义一个处理程序,用于检测我在模板中定义的复选框中的更改并更新模型.
grid.tbody.on("change", ".ob-paid", function (e) {
var row = $(e.target).closest("tr");
var item = grid.dataItem(row);
item.set("fullyPaid", $(e.target).is(":checked") ? 1 : 0);
});
Run Code Online (Sandbox Code Playgroud)
您的JSBin在此修改:http://jsbin.com/ebadaj/12/edit
小智 17
我的批处理编辑网格遇到了同样的问题.我发现的解决方案仅适用于一个特定的色谱柱(如上所述).所以我改变了
item.set("fullyPaid", $(e.target).is(":checked") ? 1 : 0);
Run Code Online (Sandbox Code Playgroud)
至
var col = $(this).closest('td');
dataItem.set(grid.columns[col.index()].field, checked);
Run Code Online (Sandbox Code Playgroud)
因此,您可以将其用于任何复选框列.
下一个问题是使用复选框的"单击编辑"选项时未正确设置的脏标志.
所以我已经测试了各种各样的东西,以使它工作,并努力与此:
在列定义中:
.ClientTemplate("<input type='checkbox' #= CheckboxColumn? checked='checked': checked='' # class='chkbx' />");
Run Code Online (Sandbox Code Playgroud)
和脚本如下:
<script>
$(function () {
$('#GridName').on('click', '.chkbx', function () {
var checked = $(this).is(':checked');
var grid = $('#GridName').data().kendoGrid;
grid.closeCell();
var dataItem = grid.dataItem($(this).closest('tr'));
var col = $(this).closest('td');
grid.editCell(col);
dataItem.set(grid.columns[col.index()].field, checked);
grid.closeCell(col);
});
});
</script>
Run Code Online (Sandbox Code Playgroud)