Ext.NET GridPanel CellEditing 模式下 阻止回车键离开编辑器
在 Ext.NET 的 GridPanel 的 CellEditing 模式下,可以通过监听 CellEditing 的特定事件来阻止按回车键离开编辑器控件并将值写入单元格中。
首先,你需要在 GridPanel 的 ColumnModel 中设置相应的编辑器类型和事件监听器。例如,下面是一个示例的 ColumnModel 配置:
var columnModel = new Ext.Net.ColumnModel
{
Columns =
{
new Ext.Net.Column
{
DataIndex = "FieldName",
Header = "Field Name",
Editor =
{
AllowBlank = false,
Field =
{
xtype = "textfield",
Listeners = new
{
SpecialKey = new
{
Fn = "onCellEditorSpecialKey"
}
}
}
}
}
}
};
在上面的示例中,我们使用了一个 textfield 作为编辑器控件,并通过设置SpecialKey事件监听器来捕获按键事件。
然后,在 JavaScript 代码中,你需要定义onCellEditorSpecialKey函数来处理特殊按键事件,例如回车键。在该函数中,你可以使用e.getKey()来获取按下的键值,并通过条件判断来阻止回车键的默认行为。
function onCellEditorSpecialKey(editor, e) {
if (e.getKey() == Ext.EventObject.ENTER) {
e.stopEvent(); // 阻止回车键的默认行为
editor.completeEdit(); // 手动完成编辑
}
}
在上面的示例中,我们通过e.stopEvent()来阻止回车键的默认行为,然后使用editor.completeEdit()来手动完成编辑操作。
通过这种方式,当按下回车键时,编辑器控件将保持焦点,并且不会将值写入单元格中,直到手动完成编辑或按下其他的特殊按键。
原文地址: https://www.cveoy.top/t/topic/qpj2 著作权归作者所有。请勿转载和采集!