2011-12-08 16 views
8

は、グリッドパネルコンポーネントがcellclickcellcontextmenucelldblclick、およびcellmousedownを含む細胞に対するバインド可能なイベントがあったから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); 
},