Ext.NET GridPanel 如何阻止按回车键离开编辑器控件
您可以使用以下代码来阻止按回车键离开编辑器控件并将值写入单元格中:
<ext:GridPanel ID="GridPanel1" runat="server">
<Store>
<ext:Store ID="Store1" runat="server">
<Model>
<ext:Model ID="Model1" runat="server">
<Fields>
<ext:ModelField Name="Name" Type="String" />
</Fields>
</ext:Model>
</Model>
<Data>
<ext:ModelProxy ID="ModelProxy1" runat="server" />
</Data>
</ext:Store>
</Store>
<ColumnModel ID="ColumnModel1" runat="server">
<Columns>
<ext:Column DataIndex="Name" Text="Name">
<Editor>
<ext:TextField runat="server" />
</Editor>
</ext:Column>
</Columns>
</ColumnModel>
<Plugins>
<ext:RowEditing runat="server" ClicksToEdit="1">
<Listeners>
<BeforeEdit Handler="return onBeforeEdit();" />
</Listeners>
</ext:RowEditing>
</Plugins>
</ext:GridPanel>
<script type="text/javascript">
function onBeforeEdit() {
var activeEditor = Ext.grid.Panel.activeEditor;
if (activeEditor && activeEditor.field) {
activeEditor.field.on('specialkey', function (field, e) {
if (e.getKey() === e.ENTER) {
e.stopEvent(); // 阻止按下回车键的默认行为
var grid = activeEditor.context.grid;
grid.editingPlugin.completeEdit(); // 将值写入单元格
}
});
}
return true;
}
</script>
在上面的代码中,我们使用了一个 BeforeEdit 事件监听器来处理编辑之前的操作。在 onBeforeEdit 函数中,我们获取了当前的活动编辑器,并为其字段添加了一个 specialkey 事件监听器。在该事件的回调函数中,我们检查按下的键是否是回车键,如果是,则阻止默认行为,并手动完成编辑,将值写入单元格中。
请注意,上述代码是基于 Ext.NET 4.x 版本的。如果您使用的是其他版本,请相应地调整代码。
原文地址: https://www.cveoy.top/t/topic/qpjX 著作权归作者所有。请勿转载和采集!