easyui datagrid行内编辑checkbox
时间: 2023-08-05 09:07:44 浏览: 237
在 easyui datagrid 中实现行内编辑 checkbox 可以通过以下步骤:
1. 在 datagrid 的 columns 属性中添加一个 checkbox 列:
```
{
field: 'checked',
title: 'Checked',
checkbox: true
},
```
2. 在 datagrid 的 onBeforeEdit 事件中设置 checkbox 列的编辑器为 null,即禁用编辑功能:
```
onBeforeEdit: function(index, row) {
$('#datagrid').datagrid('getColumnOption', 'checked').editor = null;
},
```
3. 在 datagrid 的 onAfterEdit 事件中获取 checkbox 列的值并更新到对应的数据行中:
```
onAfterEdit: function(index, row, changes) {
var checked = $('#datagrid').datagrid('getEditor', {index: index, field: 'checked'});
row.checked = $(checked.target).is(':checked');
$('#datagrid').datagrid('refreshRow', index);
},
```
这样就可以实现行内编辑 checkbox 功能了。完整的代码示例可以参考下面的例子:
```
$('#datagrid').datagrid({
url: 'datagrid_data.json',
columns: [[
{
field: 'id',
title: 'ID',
width: 50
},
{
field: 'name',
title: 'Name',
width: 100,
editor: 'text'
},
{
field: 'checked',
title: 'Checked',
checkbox: true
}
]],
onBeforeEdit: function(index, row) {
$('#datagrid').datagrid('getColumnOption', 'checked').editor = null;
},
onAfterEdit: function(index, row, changes) {
var checked = $('#datagrid').datagrid('getEditor', {index: index, field: 'checked'});
row.checked = $(checked.target).is(':checked');
$('#datagrid').datagrid('refreshRow', index);
},
toolbar: [{
text: 'Save',
iconCls: 'icon-save',
handler: function() {
$('#datagrid').datagrid('endEdit', 0);
}
}]
});
```
阅读全文