2010-12-30 11 views

Antwort

20
this.store = new Ext.data.Store({ 
    ... 
    listeners: { 
     load: function() { 
      this.grid.getSelectionModel().selectFirstRow(); 
     }, 
     scope: this 
    } 
}); 

this.grid = new Ext.grid.GridPanel({ 
    ... 
    store: this.store 
}); 

So etwas wie dies funktionieren soll, this.store vorausgesetzt und this.grid existiert, ich bin sicher, dass Sie es anpassen können.

+1

Warum sollte im Speicherobjekt ein Raster vorhanden sein? Normalerweise ist es umgekehrt. – Mchl

+0

Da das Lastereignis vom Speicher und nicht vom Raster ausgelöst wird. Ich sage nicht, Store hat auch eine Grid-Eigenschaft, in der Tat müssen Sie speziell Ihre eigenen Referenzen in "dieser" haben, damit dies funktioniert, aber er sollte das sowieso haben. – Lloyd

2

Ich wiederhole nur die Antwort von Lioyd.
Stellen Sie außerdem sicher, dass Sie das RowSelection-Modell im Raster konfiguriert haben.

var grid = new Ext.grid.GridPanel({ 
       store: ...., 
       sm: new Ext.grid.RowSelectionModel({singleSelect: true}), 

       // other grid configurations goes here 
       listeners: { 
       render : function(grid){ 
        grid.store.on('load', function(store, records, options){ 
        grid.getSelectionModel().selectFirstRow();  
        });      
       } 
       } 
      })  
+0

Möglicherweise haben Sie hier einige Problembereiche und Redundanzen. – Lloyd

+6

grid.getSelectionModel(). Select (0); – Danny

+0

@Danny: Ihre Codezeile funktioniert - Danke – Sam

Verwandte Themen