2017-09-05 1 views
0

Ich habe derzeit ein Raster mit einer Schaltfläche, auf die ich klicke, um die Datensätze im Raster zu bearbeiten. Im Moment nutze ich eine button.up('selector');, um das Raster zu bekommen, aber es fühlt sich ein bisschen hacky. Ich dachte, dass vielleicht durch die Änderung der Click-Event-Selektor der grid [action=buttonAction] statt nur [action=buttonAction] geben Sie mir den Kontext des Rasters, aber es nicht. Gibt es eine sauberere Möglichkeit, das Raster zu referenzieren als button.up?Extjs 5-Referenzraster durch Klickereignis der angedockten Schaltfläche ohne Verwendung von .up?

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

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

dann in einem Ext.app.Controller Controller ich einen Handler

 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. 
     }; 

Antwort

1

Nein definieren, gibt es nicht.

Das Click-Ereignis einer Schaltfläche immer mit der Taste als erster Parameter abgefeuert wird, und das ändern, würden Sie eine Überschreibung auf Schaltflächen erstellen müssen, die fireHandler Methode überschreiben, in dem das click Ereignis ausgelöst wird:

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

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

+1

gibt es immer der Umfang Config, die an das Netz gesetzt werden könnte (vorausgesetzt, Sie das Netz verfügbar als var haben) http://docs.sencha.com/extjs/6.2.1/modern/ Ext.Button.html # cfg-scope –

Verwandte Themen