我在每個網格中有2個網格和一個選定的行。在第二個網格中編輯單元格之後,我想將焦點設置爲第一個網格。如何設定焦點?
grid2.on('afteredit') { grid1.focus() })
不起作用。怎麼做 ?
我在每個網格中有2個網格和一個選定的行。在第二個網格中編輯單元格之後,我想將焦點設置爲第一個網格。如何設定焦點?
grid2.on('afteredit') { grid1.focus() })
不起作用。怎麼做 ?
幾件事情:
1.事件監聽器語法
如果這可能是工作,你會想要做這樣的事情:
grid2.on('afteredit', function(event) {
grid1.focus();
}, this);
2.使用的焦點
儘管ExtJS API文檔說.focus()是一個vali d方法在網格組件上調用,值得注意的是該方法的描述實際上是這樣描述的:
試着重點關注這個組件。
儘管GridPanels等繼承自Component類,但focus()通常用於基於表單的組件,它也從Component類繼承。因此,僅僅因爲你調用了focus(),並不意味着它會以你期望的每個組件的方式工作。
你正試圖關注的是什麼部分?如果網格中有可編輯的字段,那麼您可以專注於它們,而不是使用由'afteredit'事件觸發傳遞的對象中的某些屬性,它包含對網格,記錄,字段,值的引用, originalValue,行和列索引。
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);
`
類似的東西。