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

。レコードのインデックスを取得し、それをコピーします。 –

+0

ありがとうエヴァン。問題を引き起こしていたのはこの詳細でした。今それは適切に動作します。 – josei

答えて

4

でフィドルを編集しました。実際にrecordという名前の変数がコピーされています。したがって、ストアに対してレコードを検索すると、行インデックス変数がインデックス-1を返し、最後に挿入されました(ストアAPIのおそらくデフォルトの動作)。

以下の変更は、あなたが望む結果を得るでしょう:あなたはのindexOfにコピーされたレコードを取得しようとしている

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

関連する問題