2017-09-11 11 views
0

이것은 extjs 버전 6.2 이상에서 발생합니다. 편집 할 때 리스너 이벤트가있는 셀 편집 플러그인이 있습니다. 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 (두 번째 인수)을 살펴보십시오. 무엇보다 필요한 것은 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