2014-02-10 11 views
7
Ext.define('MyApp.view.MyVehicleGridPanel', { 
    extend: 'Ext.grid.Panel', 
    alias: 'widget.mygrid', 
    header: false, 
    store: UserStore, 
    multiSelect: false, 
    columns: [ 
       { 
        xtype: 'gridcolumn', 
        dataIndex: '_id', 

        text: 'Vehicle ID' 
       }, 
       { 
        xtype: 'gridcolumn', 
        width: 126, 
        dataIndex: 'Plat_No', 
        text: 'Plat Number' 
       }, 
       { 
        xtype: 'gridcolumn', 
        width: 200, 
        dataIndex: 'Name', 
        text: 'Added By' 
       } 
      ] 
}) 

i dont haben jede ID in der Gridpanel erklären, weil es in dynamicly verwendet wird,
so, im alias mit meiner Grid-Komponente wie unten CodeEXTJS wie bekomme ich die Komponente ohne deklarieren ID?

var grid = Ext.ComponentQuery.query('mygrid'); 
     console.log(Ext.ComponentQuery.query('mygrid')); 
     if (grid.getSelectionModel().hasSelection()) { //error at here 
      var row = grid.getSelectionModel().getSelection()[0]; 
      console.log(row.get('Plat_No')); 
     };  

Aber firebug Rückkehr Fehler finden mit TypeError: grid.getSelectionModel is not a function

Gibt es noch eine andere Möglichkeit, meine Gridpanel-Komponente zu finden?

Antwort

9

Ext.ComponentQuery.query() gibt ein Array übereinstimmender Komponenten aus dem übergebenen Stammobjekt zurück.

Also, wenn Sie nur eine mygrid Komponente in Ihrer Anwendung haben, können Sie Ihr Gitter wie diese:

var grid = Ext.ComponentQuery.query('mygrid')[0]; 
+0

haben keine bessere Lösung? Verwenden Sie vielleicht den Klassennamen 'MyApp.view.MyVehicleGridPanel', ist die Genauigkeit besser? –

+0

Die Verwendung von 'Klassenname' hat die gleiche Genauigkeit wie die Verwendung von Alias. Deine Lösung ist nicht falsch. Sie müssen nur damit rechnen, dass diese Abfrage das Array aller Instanzen von 'mygrid' zurückgibt, die in Ihrer Anwendung existieren. Genauer wird 'query()' mit dem zweiten Parameter oder 'up()' oder 'down()' Methoden von einer Eltern- oder Kindkomponente verwendet. – Akatum

+2

Danke für Ihre helfende Hand, Sie helfen mir immer –

Verwandte Themen