网格单元格编辑器有问题。我有细胞验证,我需要防止它们失去焦点,以防发生验证错误。我就是这样做的:
blur: function (field, event) {
if (field.value > field.maxValue || field.value < field.minValue) {
field.focus();
return false;
}
},
specialkey: function (field, event) {
if (event.getKey() == 9 ) {
if (field.value > field.maxValue || field.value < field.minValue) {
field.focus();
return false;
}
}
}
当您尝试单击网格外的任何位置或尝试使用Tab选择下一个单元格时,此部分适用。问题是,如果你点击另一个单元格,我仍然会失去焦点。这就是调试显示的内容:
cell_1 - blur, cell_1 - focus, cell_2 - blur, cell_2 - focus
有人遇到过类似的问题吗?
还有点混乱,如果你将断点放入“模糊”监听器,它将工作!调试将显示:cell_1 - 模糊,没有其他事件。
答案 0 :(得分:1)
您应该在beforeedit
插件的cellediting
事件中进行验证(至少在ExtJs 4中):
this.cellEditing = new Ext.grid.plugin.CellEditing({
clicksToEdit : 1,
listeners : {
beforeedit : function (editor, e) {
// do your valdiation here :
return (e.record.get('your_field') != 'aaa');
}
}
});
如果您在此处返回false,则会取消该版本。