2010-12-30 9 views
6

Model.getSelectionModel(). selectRow (0) this.store을 가정하고,이 같은로드 그리드에서 행을 선택하는 방법?

+7

왜 일하지 않니? – Matt

+1

더 많은 코드를 표시하십시오 (특히 위의 행을 어떻게 트리거하는지). 오류 콘솔에 오류 메시지가 있습니까? – Mchl

답변

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

그리드가 아닌 저장소에서로드 이벤트가 발생하기 때문입니다. 스토어에 그리드 프로퍼티가 있다는 것을 말하는 것이 아닙니다. 사실이 작업을 수행하기 위해 'this'에 고유 한 참조가 있어야합니다.하지만 어쨌든 그렇게해야합니다. – Lloyd

2

나는 리오이드의 대답을 반복하고있다.
또한 Grid에 RowSelection Model을 구성했는지 확인하십시오.

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

@ 대니 : 귀하의 코드 라인 작동 - 감사 – Sam

관련 문제