2017-09-05 4 views
0

私はグリッド内のレコードを操作するためにクリックするボタンを持つグリッドを現在持っています。現時点では、私はbutton.up('selector');を使ってグリッドを取得していますが、ちょっとハッキリしています。私はおそらく[action=buttonAction]よりも、クリックイベントセレクタをgrid [action=buttonAction]に変更することで、私にグリッドのコンテキストを与えるかもしれないと考えましたが、そうではありません。 button.upではなくグリッドを参照するためのクリーンな方法はありますか?Extupを使用せずにドッキングしたボタンのクリックイベントによる参照グリッド。

var dockedItems = new Ext.toolbar.Toolbar({ 
        items: { 
     text: 'Do a thing', 
     action: 'actionForTheThing' 
    } 
      }); 

Ext.grid.Panel({ 
       store: this.store, 
       dockedItems: dockedItems, 
}); 

はその後Ext.app.Controllerコントローラに私がいいえ、ありませんハンドラ

 this.control({ 
     '[action=actionForTheThing]': { 
      click: this.handleTheThing 
     }, 

     handleTheThing: function(button, click){ 
      //Here I have the button, but I want to get to the grid that has the button 
      // Right now I can do button.up(''), but I want more of a strict relationship 
      //like button.getParent(); or something. 
     }; 

答えて

1

を定義します。

ボタンのクリックイベントは、常に最初のパラメータとしてボタンで発射され、そしてそれを変更するには、あなたはclickイベントが発生fireHandler方法を、オーバーライド、ボタンの上書きを作成する必要があります。

me.fireEvent('click', me, e) 

http://docs.sencha.com/extjs/6.2.1/classic/src/Button.js.html#line1643

+1

グリッドに設定することができスコープの設定が常にあります(あなたはVARとして利用できるグリッドを持っていると仮定)http://docs.sencha.com/extjs/6.2.1/modern/ Ext.Button.html#cfg-scope –

関連する問題