簡體   English   中英

extjs cellediting事件將activecolumn傳遞為null

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM