Когда вы нажимаете контрольное поле, конвертер автоматически вызывается, а в вашем convert:function
вы всегда устанавливаете его значение для проверки. Попытки установить значение с различным чеком или удалить пользовательский преобразователь
здесь ваша скрипку изменения:
https://fiddle.sencha.com/#fiddle/12p5
и скрипка код:
Ext.application({
name: 'Fiddle',
launch: function() {
var store = Ext.create('Ext.data.Store', {
fields: ['name', 'email', 'phone', {
name: 'check',
convert: function(value, record) {
debugger; //You can see that this function is invoked when you check the column
return value ? 1 : 0; //Modify the logic or don't force the value
}
}],
data: [{
name: 'Lisa',
email: '[email protected]',
phone: '555-111-1224',
check: 1 //initialize with checked if necessary
}, {
name: 'Bart',
email: '[email protected]',
phone: '555-222-1234',
check: 1
}, {
name: 'Homer',
email: '[email protected]',
phone: '555-222-1244',
check: 1
}, {
name: 'Marge',
email: '[email protected]',
phone: '555-222-1254',
check: 1
}]
});
Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
store: store,
height: 200,
width: 400,
renderTo: Ext.getBody(),
columns: [{
text: 'Name',
dataIndex: 'name',
renderer: function(value, meta) {
meta.tdCls += ' image-hover';
return '<span class="name">' + value + '</span><img src="http://sstatic.net/stackoverflow/img/icon-16.png" />';
}
}, {
text: 'Email',
dataIndex: 'email',
flex: 1
}, {
xtype: 'checkcolumn',
text: 'Phone',
dataIndex: 'check'
}]
});
}
});