2011-12-08 3 views
8

는 격자 패널 구성 요소가 cellclick, cellcontextmenu, celldblclickcellmousedown을 포함하여 세포에 대한 바인딩 이벤트를했다 3.X, 이러한 이벤트에 대한 리스너는 이벤트를 트리거 셀의 모두 rowIndexcolIndex 통과되었다.ExtJS 4 - 그리드 셀 이벤트? 의 ExtJS에서

4.x에서는 이러한 이벤트가 사라지고 항목 * 이벤트 (예 : itemclick) 만 있지만 이러한 이벤트는 전체적으로 그리드의 행을 시작하므로 행의 인덱스 만 전달됩니다.

이러한 이벤트를 사용하여 클릭 한 열을 확인하는 방법이 있습니까? 아니면 리스너를 셀에 연결하는 대체 방법이 있습니까?

답변

9

질문의 핵심은 그리드 용으로 선택된 선택 모델에 있다고 생각합니다. 기본값은 행 선택기이므로 항목 선택 이벤트는 행에서 작동합니다. 여기 셀 선택기 API를 체크 아웃 :

또한 그리드의보기의 (불법) uievent 고리에 걸고 수

http://docs.sencha.com/ext-js/4-0/#!/api/Ext.selection.CellModel-event-select

+0

완벽 의미가 있습니다, 감사합니다! –

2

(는 ExtJS 4.1) :

grid.getView().on('uievent', this.onUIEvent, this); 

onUIEvent: function (aType, aView, aCell, aRecordIndex, aCellIndex, aEvent) 
{ 
    console.log(aRecordIndex + ' : ' + aCellIndex); 
},