2011-05-11 60 views
2

我在每個網格中有2個網格和一個選定的行。在第二個網格中編輯單元格之後,我想將焦點設置爲第一個網格。如何設定焦點?

 
    grid2.on('afteredit') { 
     grid1.focus() 
}) 

不起作用。怎麼做 ?

回答

1

幾件事情:

1.事件監聽器語法

如果這可能是工作,你會想要做這樣的事情:

grid2.on('afteredit', function(event) { 
    grid1.focus(); 
}, this); 

2.使用的焦點

儘管ExtJS API文檔說.focus()是一個vali d方法在網格組件上調用,值得注意的是該方法的描述實際上是這樣描述的:

試着重點關注這個組件。

儘管GridPanels等繼承自Component類,但focus()通常用於基於表單的組件,它也從Component類繼承。因此,僅僅因爲你調用了focus(),並不意味着它會以你期望的每個組件的方式工作。

你正試圖關注的是什麼部分?如果網格中有可編輯的字段,那麼您可以專注於它們,而不是使用由'afteredit'事件觸發傳遞的對象中的某些屬性,它包含對網格,記錄,字段,值的引用, originalValue,行和列索引。

2

RowSelectionModel有一個名爲selectRow()的方法,它將突出顯示附加到記錄的指定行。假設這是你的意思?

也就是說,你的代碼看起來像這樣。

`

grid2.on('afteredit', function(edit_event) { 
    var id = edit_event.record.get('id'); 
    var grid1_record = grid1.store.getById(id); 
    grid1.getSelectionModel().selectRow(grid1_record); 
}, this); 

`

類似的東西。