2017-09-11 3 views
0

これはextjsバージョン6.2以降で発生します。編集時にリスナーイベントを持つcelleditingプラグインがあります。 onEditが呼び出されると、編集されたセルのxtypeをチェックしようとしていますが、アクティブな列がnullとして渡されるため失敗します。これは、以前のバージョンで正常に動作します。研究ごとに、これはextjsのバージョンでは決して解決されていないバグであり、未だに解決策は見当たりません。もし誰かがこれに遭遇すれば、助言してください。extjs celleditingイベントがactivecolumnをnullとして渡す

問題:セル編集では、editor.activecolumnはnullです。以前のバージョンでは正常に動作します。 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引き金となり、関数です:ExtJSに6.2からactiveColumnプロパティを開始実際

onEdit: function(editor, c, e) { 

    // combobox check 
    if (editor.activeColumn.config.editor.xtype === 'combo') { 
       console.log("it's combo"); 
    } 
} 

答えて

0

、エディタオブジェクト上からもう入手できませんedit。しかし、文書化されていないので、最初にそれに頼ってはいけませんでした。そして、あなたが望むものを達成するための他の手段があります。

editイベントリスナーに渡されるcontext(2番目の引数)を見てください。とりわけ、それにはcolumnというプロパティがあります。これは必要なものです。だからあなたの場合には、あなたが

onEdit: function(editor, context) { 
    if (context.column.config.editor.xtype === 'combo') { 
     console.log("it's combo"); 
    } 
} 

onEdit: function(editor, c, e) { 
    if (editor.activeColumn.config.editor.xtype === 'combo') { 
     console.log("it's combo"); 
    } 
} 

を置き換えることができ、それが

+0

ExtJSの6のすべてのバージョン間で動作します、ありがとうございました。出来た。あなたの提案を感謝します。 – Pat

関連する問題