2016-09-26 71 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

相关问题