2016-09-26 60 views
1

對於網格,我想複製選定的行。在特定位置複製一行

然後,我想在選中的行之後的網格位置插入行的副本。

FIDDLE:https://fiddle.sencha.com/#fiddle/1hc6

var grid = this.up('grid'); 
var record = grid.getSelectionModel().getSelection()[0].copy(null); 

var store = grid.getStore(); 
var row = store.indexOf(record); 

store.insert(row, record); //store.insert(row + 1, record);????? 

我編輯撥弄解決方案

+0

你試圖獲得的indexOf複製的記錄。獲取記錄的索引,然後複製它。 –

+0

謝謝埃文。正是這個細節導致了這個問題。現在它工作正常。 – josei

回答

4

這倒變量命名。你的變量record實際上是副本。因此,當您針對商店搜索記錄時,您的行索引變量返回索引-1,因此在最後插入(可能是商店API的默認行爲)。

下面的變化會得到你想要的東西:

var record = grid.getSelectionModel().getSelection()[0]; 
var copy = record.copy(null); 
... 
var row = store.indexOf(record); // this used to be -1 
store.insert(row, copy); 
+0

謝謝納爾遜,埃文曾呼籲我關注這個細節。 感謝您對代碼和解釋的幫助。 – josei

+0

沒問題,不客氣 – Nelson