[英]extjs cellediting event passing activecolumn as null
extjs 6.2+版本會發生這種情況。 我有一個cellediting插件,該插件在編輯時有一個監聽器事件。 調用onEdit時,我正在嘗試檢查已編輯單元格的xtype,但失敗,因為活動列以null形式傳遞。 這在早期版本中可以正常工作。 根據研究,這可能是一個bug,尚未在extjs版本中修復,也沒有任何解決方法。 如果有人遇到此問題,請提出建議。
問題 :在單元格編輯中,editor.activecolumn為空。 它與較早的版本一起正常工作。 看起來像ExtJs 6.2 CellEditing插件editor.el.dom總是傳遞null。
面板布局:
hideHeaders: false,
sortableColumns: false,
rowLines: true,
collapsible: false,
titleCollapse: true,
layout: 'auto',
title: 'Test Page',
selModel: 'cellmodel',
plugins: {
ptype: 'cellediting',
clicksToEdit: 1,
listeners: {
beforeedit: 'isEditable',
edit: 'onEdit'
}
}
上面的代碼將觸發onEdit,下面的函數:
onEdit: function(editor, c, e) {
// combobox check
if (editor.activeColumn.config.editor.xtype === 'combo') {
console.log("it's combo");
}
}
實際上,從ExtJS 6.2開始,不再在edit
上的editor對象中使用activeColumn
屬性。 但是您首先不應該依賴它,因為它沒有記錄在案,並且還有其他方法可以實現您想要的。
查看傳遞給edit
事件偵聽器的上下文 (第二個參數)。 除其他外,它具有您需要的column
屬性。 因此,根據您的情況,您可以更換
onEdit: function(editor, c, e) {
if (editor.activeColumn.config.editor.xtype === 'combo') {
console.log("it's combo");
}
}
與
onEdit: function(editor, context) {
if (context.column.config.editor.xtype === 'combo') {
console.log("it's combo");
}
}
它將適用於所有版本的ExtJS 6。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.