您尝试归档的内容不可能开箱即用。
我猜你想一直显示复选框?否则,CellEditor插件已经是您正在寻找的。
但无论如何它应该是开始的点(我猜)。这是一个示例代码,它使用 ExtJS 类和图像在单元格中显示一种假组合以及单元格编辑器。有人认为您仍然需要解决;您需要在编辑开始之前覆盖单元格内容,因为单元格编辑器似乎只删除了默认类型。
往这边走?当然,您可以使用唯一 id 修改复选框并为其获取 Ext.Element,这样您现在就可以注册事件。但是这种方法有一个缺点,您需要关心渲染时间,否则当您尝试获取它时您的组合不存在。因此,我向您推荐这种方法。在渲染开始之前擦除图像很容易。
Ext.create('Ext.data.Store', {
storeId:'simpsonsStore',
fields:['name', 'email', 'phone'],
data:{'items':[
{"name":"Lisa", "email":"lisa@simpsons.com", "phone":true},
{"name":"Bart", "email":"bart@simpsons.com", "phone":false},
{"name":"Homer", "email":"home@simpsons.com", "phone":true},
{"name":"Marge", "email":"marge@simpsons.com", "phone":true}
]},
proxy: {
type: 'memory',
reader: {
type: 'json',
root: 'items'
}
}
});
Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
store: Ext.data.StoreManager.lookup('simpsonsStore'),
columns: [
{header: 'Name', dataIndex: 'name', editor: 'textfield'},
{header: 'Email', dataIndex: 'email', flex:1},
{header: 'Phone', dataIndex: 'phone',
editor: { xtype: 'checkbox', inputValue: 'true', uncheckedValue: 'false' }, renderer: function(value){
return value ? '<span class="x-form-cb-checked"><div class="x-form-checkbox"></div></span>' : '<div class="x-form-checkbox"></div>';
}
}
],
selType: 'cellmodel',
plugins: [
Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1
})
],
height: 200,
width: 400,
renderTo: Ext.getBody()
});
这是JSFiddle