gpt4 book ai didi

javascript - 从编辑器监听器中获取 CellEditing 插件

转载 作者:行者123 更新时间:2023-11-29 10:51:33 27 4
gpt4 key购买 nike

我有单元格编辑的网格。当有人在 celleditor 中按下 enter 时 - extjs 需要在下一行和同一单元格中打开编辑器。我知道,此操作执行 CellEditing 类的 startEdit() 方法。但是如何从 CellEditor 的监听器访问该网格的 CellEditing。

listeners:{
specialkey: function(field, e){
if (e.getKey() == e.ENTER) {
var grid = Ext.getCmp('sheetproductionrestin');
var store = Ext.getCmp('sheetproductionrestin').store;
var selModel = grid.getSelectionModel();
var selectedRecord = selModel.getLastSelected();

var recordIndex = store.indexOf(selectedRecord);
var nextRecord = store.getAt(recordIndex + 1);
selModel.select(nextRecord);
}
}
}

此代码使下一行成为焦点,但我如何访问编辑插件并从此处调用 StartEdit?

最佳答案

您可以通过 getPlugin method 访问插件如果您已将 pluginId 分配给您的插件:

var grid = Ext.create('Ext.grid.Panel',{
plugins: [Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 2,
pluginId: 'cellplugin'
})],
columns: [
{
header: 'Name',
dataIndex: 'name',
editor: {
xtype: 'textfield',
listeners: {
specialkey: function(field, e) {
if (e.getKey() == e.ENTER) {
var grid = Ext.getCmp('sheetproductionrestin');
var store = Ext.getCmp('sheetproductionrestin').store;
var selModel = grid.getSelectionModel();
var selectedRecord = selModel.getLastSelected();

var recordIndex = store.indexOf(selectedRecord);
var nextRecord = store.getAt(recordIndex + 1);
selModel.select(nextRecord);

var plugin = grid.getPlugin('cellplugin');
plugin.startEdit(nextRecord, grid.columns[0]);
}
}
}
}},
// ...
],
// ...
});

这里是 jsfiddle (第一列是可编辑的)。

关于javascript - 从编辑器监听器中获取 CellEditing 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9273094/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com