2010-12-30 11 views

答えて

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

何かが動作するはずです...動作しないとthis.gridが存在し、私はあなたがそれを適応させることができます確信しています。

+1

ストアオブジェクトにグリッドがあるのはなぜですか?通常、それは逆の方法です。 – Mchl

+0

グリッドではなくストアからロードイベントが発生するためです。私はStoreにグリッドプロパティがあると言っているわけではありません。実際には、これが動作するためには、あなた自身の参照を 'this'で指定しなければなりません。 – Lloyd

2

私はちょうどリオードの答えを繰り返しています。
また、グリッドにRowSelectionモデルを設定していることを確認してください。

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

ここにはいくつかのスコープの問題と冗長性があります。 – Lloyd

+6

grid.getSelectionModel()。select(0); – Danny

+0

@Danny:コードラインの動作 - ありがとう – Sam

関連する問題